Пожалуйста, удалите инъекцию JwtHelper в конструктор и создайте объект для JwtHelper внутри вашего canActivate следующим образом:
export class AuthGuard implements CanActivate {
constructor(private router: Router) {
}
canActivate() {
let jwtHelper: JwtHelper = new JwtHelper();
const token = localStorage.getItem('jwt');
if (token && !this.jwtHelper.isTokenExpired(token)) {
return true;
}
this.router.navigate(['login']);
return false;
}
}
Это не слишком хитро для перереализации контекстного меню RichTextBox с написанием предложений, Сокращения, Вставки, и т.д.
Поднимите трубку открытие контекстного меню следующим образом:
AddHandler(RichTextBox.ContextMenuOpeningEvent, new ContextMenuEventHandler(RichTextBox_ContextMenuOpening), true);
В сборке обработчика событий контекстное меню, как Вам нужно. Можно воссоздать существующие пункты меню контекстного меню со следующим:
private IList<MenuItem> GetSpellingSuggestions() { List<MenuItem> spellingSuggestions = new List(); SpellingError spellingError = myRichTextBox.GetSpellingError(myRichTextBox.CaretPosition); if (spellingError != null) { foreach (string str in spellingError.Suggestions) { MenuItem mi = new MenuItem(); mi.Header = str; mi.FontWeight = FontWeights.Bold; mi.Command = EditingCommands.CorrectSpellingError; mi.CommandParameter = str; mi.CommandTarget = myRichTextBox; spellingSuggestions.Add(mi); } } return spellingSuggestions; } private IList<MenuItem> GetStandardCommands() { List<MenuItem> standardCommands = new List(); MenuItem item = new MenuItem(); item.Command = ApplicationCommands.Cut; standardCommands.Add(item); item = new MenuItem(); item.Command = ApplicationCommands.Copy; standardCommands.Add(item); item = new MenuItem(); item.Command = ApplicationCommands.Paste; standardCommands.Add(item); return standardCommands; }
Если существуют орфографические ошибки, можно создать, Игнорируют Все с:
MenuItem ignoreAllMI = new MenuItem(); ignoreAllMI.Header = "Ignore All"; ignoreAllMI.Command = EditingCommands.IgnoreSpellingError; ignoreAllMI.CommandTarget = textBox; newContextMenu.Items.Add(ignoreAllMI);
Добавьте разделители как требуется. Добавьте тех, которые к объектам нового контекстного меню и затем добавляют Ваш новейший MenuItems.
Я собираюсь продолжать искать способ получить фактическое контекстное меню, хотя, поскольку это относится к чему-то, что я буду продолжать работать в ближайшем будущем.