Beispiel #1
0
        public Garage()
        {
            this.InitializeComponent();
            ApplicationView.PreferredLaunchViewSize      = new Size(Height = 432, Width = 768);
            ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;

            KeyboardAccelerator GoBack = new KeyboardAccelerator();

            GoBack.Key      = VirtualKey.GoBack;
            GoBack.Invoked += BackInvoked;
            KeyboardAccelerator AltLeft = new KeyboardAccelerator();

            AltLeft.Key      = VirtualKey.Left;
            AltLeft.Invoked += BackInvoked;
            this.KeyboardAccelerators.Add(GoBack);
            this.KeyboardAccelerators.Add(AltLeft);
            // ALT routes here
            AltLeft.Modifiers = VirtualKeyModifiers.Menu;

            if (ListaTanques != null)
            {
                foreach (Tank tank in model.GetAllTanks())
                {
                    VMTank VMitem = new VMTank(tank);
                    ListaTanques.Add(VMitem);
                }
            }

            if (ListaPiezas != null)
            {
                foreach (Pieza pieza in model.GetAllPiezas())
                {
                    VMPieza VMitem = new VMPieza(pieza);
                    ListaPiezas.Add(VMitem);
                }
            }

            if (ListaCanon != null)
            {
                foreach (Pieza pieza in model.GetAllPiezas())
                {
                    VMPieza VMitem = new VMPieza(pieza);

                    if (VMitem.Tipo == Pieza.Type.Null)
                    {
                        nullPieza = VMitem;
                    }

                    if (VMitem.Tipo == Pieza.Type.Canon)
                    {
                        ListaCanon.Add(VMitem);
                    }
                }
            }

            if (ListaBlindaje != null)
            {
                foreach (Pieza pieza in model.GetAllPiezas())
                {
                    VMPieza VMitem = new VMPieza(pieza);
                    if (VMitem.Tipo == Pieza.Type.Blindaje)
                    {
                        ListaBlindaje.Add(VMitem);
                    }
                }
            }

            if (ListaRuedas != null)
            {
                foreach (Pieza pieza in model.GetAllPiezas())
                {
                    VMPieza VMitem = new VMPieza(pieza);
                    if (VMitem.Tipo == Pieza.Type.Ruedas)
                    {
                        ListaRuedas.Add(VMitem);
                    }
                }
            }

            selectedPieza = nullPieza;

            for (int i = 0; i < 4; ++i)
            {
                team.Add(ListaTanques[i]);
            }
        }
Beispiel #2
0
 private void ResetGrid(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     ResetView.Begin();
 }
        private static void OnKeyboardAcceleratorInvoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
        {
            var result = NavigationService.GoBack();

            args.Handled = result;
        }
        private async void Refresh_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
        {
            await Data.Reload();

            args.Handled = true;
        }
Beispiel #5
0
 public static void SetCommandParameter(KeyboardAccelerator ka, object parameter) => ka.SetValue(CommandParameterProperty, parameter);
 private async void OpenNewWindowAccelerator_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     var filesUWPUri = new Uri("files-uwp:");
     await Launcher.LaunchUriAsync(filesUWPUri);
 }
Beispiel #7
0
 private void CtrlF_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     // controlsSearchBox.Focus(FocusState.Programmatic);
 }
Beispiel #8
0
        private void NewTabKeyboardAccelerator_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
        {
            var senderTabView = args.Element as TabView;

            senderTabView.TabItems.Add(CreateNewTab(senderTabView.TabItems.Count));
        }
Beispiel #9
0
 private void Unlock_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     Button_Click(this, null);
     args.Handled = true;
 }
Beispiel #10
0
 private void AddNew_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     this.Frame.Navigate(typeof(addPage));
     args.Handled = true;
 }
        /// <summary>
        /// Perform some configuration work after the editing module is loaded
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void Initialize_EditorLoaded(object sender, EventArgs e)
        {
            var actionJson = await InvokeScriptAsync(InvokeScriptTargetType.Editor, "getActions");

            if (!string.IsNullOrEmpty(actionJson))
            {
                var actions = JsonConvert.DeserializeObject <List <EditorAction> >(actionJson);
                actions = actions.Where(p => p.Id.ToEnumString().Contains("markdown-")).ToList();
                if (_contextMenuFlyout != null)
                {
                    _contextMenuFlyout.SecondaryCommands.Clear();
                    var groups = actions.GroupBy(p => p.ContextMenuGroupId);
                    foreach (var group in groups)
                    {
                        foreach (var action in group)
                        {
                            var btn = new AppBarButton();
                            btn.Tag    = action.Id.ToEnumString();
                            btn.Label  = action.Label;
                            btn.Icon   = GetIconFromActionId(action.Id);
                            btn.Click += ContextMenuButton_Click;

                            // Add shortcut
                            if (action.AttachKeys.Length > 0)
                            {
                                var acc       = new KeyboardAccelerator();
                                var keyString = action.AttachKeys.Last();
                                if (action.AttachKeys.Length == 3)
                                {
                                    acc.Modifiers = VirtualKeyModifiers.Control | VirtualKeyModifiers.Shift;
                                }
                                else
                                {
                                    acc.Modifiers = VirtualKeyModifiers.Control;
                                }
                                if (Regex.IsMatch(keyString, @"[1-9]"))
                                {
                                    keyString = "Number" + keyString;
                                }
                                Enum.TryParse(keyString, out VirtualKey key);
                                acc.Key = key;
                                btn.KeyboardAccelerators.Add(acc);
                            }

                            _contextMenuFlyout.SecondaryCommands.Add(btn);
                        }
                        _contextMenuFlyout.SecondaryCommands.Add(new AppBarSeparator());
                    }
                    if (_contextMenuFlyout.SecondaryCommands.Last() is AppBarSeparator)
                    {
                        _contextMenuFlyout.SecondaryCommands.RemoveAt(_contextMenuFlyout.SecondaryCommands.Count - 1);
                    }
                    foreach (var btn in _contextMenuFlyout.PrimaryCommands.OfType <AppBarButton>())
                    {
                        btn.Click -= ContextMenuButton_Click;
                        btn.Click += ContextMenuButton_Click;
                    }

                    // Change menu display language
                    if (CurrentLocaleOptions != null)
                    {
                        UpdateLocaleOptions(CurrentLocaleOptions);
                    }
                }
            }
            EditorLoaded -= Initialize_EditorLoaded;
        }
Beispiel #12
0
 private void OpenSettings_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     this.Frame.Navigate(typeof(settingPage));
     args.Handled = true;
 }
Beispiel #13
0
            public RichEditBoxContextFlyout()
            {
                ResourceLoader loader = ResourceLoader.GetForCurrentView();

                Opened += RichEditBoxContextFlyout_Opened;
                Closed += RichEditBoxContextFlyout_Closed;

                CutButton = new MenuFlyoutItem()
                {
                    Text = loader.GetString("CutButton/Text")
                };
                CutButton.Click += CutButton_Click;
                Items.Add(CutButton);

                CopyButton = new MenuFlyoutItem()
                {
                    Text = loader.GetString("CopyButton/Text")
                };
                CopyButton.Click += CopyButton_Click;
                Items.Add(CopyButton);

                PasteButton = new MenuFlyoutItem()
                {
                    Text = loader.GetString("PasteButton/Text")
                };
                PasteButton.Click += PasteButton_Click;
                Items.Add(PasteButton);

                CutCopyPasteSeparator = new MenuFlyoutSeparator();
                Items.Add(CutCopyPasteSeparator);

                SelectAllButton = new MenuFlyoutItem()
                {
                    Text = loader.GetString("SelectAllButton/Text")
                };
                SelectAllButton.Click += SelectAllButton_Click;
                Items.Add(SelectAllButton);

                HighlightSeparator = new MenuFlyoutSeparator();
                Items.Add(HighlightSeparator);

                HighlightButton = new MenuFlyoutItem()
                {
                    Text = loader.GetString("HighlightButton/Text")
                };
                HighlightButton.Click += HighlightButton_Click;
                Items.Add(HighlightButton);

                RemoveHighlightButton = new MenuFlyoutItem()
                {
                    Text = loader.GetString("RemoveHighlightButton/Text")
                };
                RemoveHighlightButton.Click += RemoveHighlightButton_Click;
                Items.Add(RemoveHighlightButton);

                CaseSeparator = new MenuFlyoutSeparator();
                Items.Add(CaseSeparator);

                UppercaseButton = new MenuFlyoutItem()
                {
                    Text = loader.GetString("UppercaseButton/Text")
                };
                UppercaseButton.Click += UppercaseButton_Click;
                Items.Add(UppercaseButton);

                LowercaseButton = new MenuFlyoutItem()
                {
                    Text = loader.GetString("LowercaseButton/Text")
                };
                LowercaseButton.Click += LowercaseButton_Click;
                Items.Add(LowercaseButton);

                SearchSeparator = new MenuFlyoutSeparator();
                Items.Add(SearchSeparator);

                SearchButton = new MenuFlyoutItem()
                {
                    Text = "[search]"
                };
                SearchButton.Click += SearchButton_Click;
                Items.Add(SearchButton);

                if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 4))
                {
                    CutButton.Icon = new FontIcon {
                        Glyph = "\uE8C6"
                    };
                    CopyButton.Icon = new FontIcon {
                        Glyph = "\uE8C8"
                    };
                    PasteButton.Icon = new FontIcon {
                        Glyph = "\uE77F"
                    };
                }

                if (ApiInformation.IsTypePresent("Windows.UI.Xaml.Input.KeyboardAccelerator"))
                {
                    KeyboardAccelerator CtrlX = new KeyboardAccelerator();
                    CtrlX.Key           = VirtualKey.X;
                    CtrlX.Modifiers     = VirtualKeyModifiers.Control;
                    CtrlX.IsEnabled     = false;
                    CutButton.AccessKey = "X";
                    CutButton.KeyboardAccelerators.Add(CtrlX);

                    KeyboardAccelerator CtrlC = new KeyboardAccelerator();
                    CtrlC.Key            = VirtualKey.C;
                    CtrlC.Modifiers      = VirtualKeyModifiers.Control;
                    CtrlC.IsEnabled      = false;
                    CopyButton.AccessKey = "C";
                    CopyButton.KeyboardAccelerators.Add(CtrlC);

                    KeyboardAccelerator CtrlV = new KeyboardAccelerator();
                    CtrlV.Key             = VirtualKey.V;
                    CtrlV.Modifiers       = VirtualKeyModifiers.Control;
                    CtrlV.IsEnabled       = false;
                    PasteButton.AccessKey = "V";
                    PasteButton.KeyboardAccelerators.Add(CtrlV);

                    KeyboardAccelerator CtrlA = new KeyboardAccelerator();
                    CtrlA.Key                 = VirtualKey.A;
                    CtrlA.Modifiers           = VirtualKeyModifiers.Control;
                    CtrlA.IsEnabled           = false;
                    SelectAllButton.AccessKey = "A";
                    SelectAllButton.KeyboardAccelerators.Add(CtrlA);
                }
            }
Beispiel #14
0
            public RichEditBoxSelectionFlyout()
            {
                Opened += RichEditBoxSelectionFlyout_Opened;

                Placement = Windows.UI.Xaml.Controls.Primitives.FlyoutPlacementMode.TopEdgeAlignedLeft;

                ResourceLoader loader = ResourceLoader.GetForCurrentView();

                CutButton = new AppBarButton()
                {
                    Label = loader.GetString("CutButton/Text")
                };
                CutButton.Click += CutButton_Click;
                PrimaryCommands.Add(CutButton);

                CopyButton = new AppBarButton()
                {
                    Label = loader.GetString("CopyButton/Text")
                };
                CopyButton.Click += CopyButton_Click;
                PrimaryCommands.Add(CopyButton);

                PasteButton = new AppBarButton()
                {
                    Label = loader.GetString("PasteButton/Text")
                };
                PasteButton.Click += PasteButton_Click;
                PrimaryCommands.Add(PasteButton);

                SelectAllButton = new AppBarButton()
                {
                    Label = loader.GetString("SelectAllButton/Text")
                };
                SelectAllButton.Click += SelectAllButton_Click;
                SecondaryCommands.Add(SelectAllButton);

                HighlightSeparator = new AppBarSeparator();
                SecondaryCommands.Add(HighlightSeparator);

                HighlightButton = new AppBarButton()
                {
                    Label = loader.GetString("HighlightButton/Text")
                };
                HighlightButton.Click += HighlightButton_Click;
                SecondaryCommands.Add(HighlightButton);

                RemoveHighlightButton = new AppBarButton()
                {
                    Label = loader.GetString("RemoveHighlightButton/Text")
                };
                RemoveHighlightButton.Click += RemoveHighlightButton_Click;
                SecondaryCommands.Add(RemoveHighlightButton);

                CaseSeparator = new AppBarSeparator();
                SecondaryCommands.Add(CaseSeparator);

                UppercaseButton = new AppBarButton()
                {
                    Label = loader.GetString("UppercaseButton/Text")
                };
                UppercaseButton.Click += UppercaseButton_Click;
                SecondaryCommands.Add(UppercaseButton);

                LowercaseButton = new AppBarButton()
                {
                    Label = loader.GetString("LowercaseButton/Text")
                };
                LowercaseButton.Click += LowercaseButton_Click;
                SecondaryCommands.Add(LowercaseButton);

                SearchSeparator = new AppBarSeparator();
                SecondaryCommands.Add(SearchSeparator);

                SearchButton = new AppBarButton()
                {
                    Label = "[search]"
                };
                SearchButton.Click += SearchButton_Click;
                SecondaryCommands.Add(SearchButton);

                CutButton.Icon = new FontIcon {
                    Glyph = "\uE8C6"
                };
                CopyButton.Icon = new FontIcon {
                    Glyph = "\uE8C8"
                };
                PasteButton.Icon = new FontIcon {
                    Glyph = "\uE77F"
                };

                if (ApiInformation.IsTypePresent("Windows.UI.Xaml.Input.KeyboardAccelerator"))
                {
                    KeyboardAccelerator CtrlX = new KeyboardAccelerator();
                    CtrlX.Key           = VirtualKey.X;
                    CtrlX.Modifiers     = VirtualKeyModifiers.Control;
                    CtrlX.IsEnabled     = false;
                    CutButton.AccessKey = "X";
                    CutButton.KeyboardAccelerators.Add(CtrlX);

                    KeyboardAccelerator CtrlC = new KeyboardAccelerator();
                    CtrlC.Key            = VirtualKey.C;
                    CtrlC.Modifiers      = VirtualKeyModifiers.Control;
                    CtrlC.IsEnabled      = false;
                    CopyButton.AccessKey = "C";
                    CopyButton.KeyboardAccelerators.Add(CtrlC);

                    KeyboardAccelerator CtrlV = new KeyboardAccelerator();
                    CtrlV.Key             = VirtualKey.V;
                    CtrlV.Modifiers       = VirtualKeyModifiers.Control;
                    CtrlV.IsEnabled       = false;
                    PasteButton.AccessKey = "V";
                    PasteButton.KeyboardAccelerators.Add(CtrlV);

                    KeyboardAccelerator CtrlA = new KeyboardAccelerator();
                    CtrlA.Key                 = VirtualKey.A;
                    CtrlA.Modifiers           = VirtualKeyModifiers.Control;
                    CtrlA.IsEnabled           = false;
                    SelectAllButton.AccessKey = "A";
                    SelectAllButton.KeyboardAccelerators.Add(CtrlA);
                }
            }
Beispiel #15
0
 private void Text_OnInvoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     Send();
 }
Beispiel #16
0
        private async void AddNewInstanceAccelerator_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
        {
            await AddNewTab(typeof(ModernShellPage), ResourceController.GetTranslation("NewTab"));

            args.Handled = true;
        }
 private async void Refresh_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     args.Handled = true;
     await Refresh();
 }
Beispiel #18
0
        // This is where I set up keyboard accelerators and do some ridiculous hacks
        // to get keyboard control+focus working the way I want it.
        // Space should ALWAYS toggle playback, unless the search box has focus.
        // Escape should clear+exit the search box.
        // Enter should start playing a file when in the file view

        #region KeyboardStuff

        private void SetUpKeyboardAccelerators()
        {
            KeyboardAccelerator CreateAccelerator(VirtualKeyModifiers modifier, VirtualKey key,
                                                  TypedEventHandler <KeyboardAccelerator, KeyboardAcceleratorInvokedEventArgs> eventHandler)
            {
                KeyboardAccelerator ret = new KeyboardAccelerator()
                {
                    Modifiers = modifier, Key = key
                };

                ret.Invoked += eventHandler;

                return(ret);
            }

            //pull

            KeyboardAccelerator pullAccelerator = CreateAccelerator(VirtualKeyModifiers.Control, VirtualKey.P,
                                                                    async(sender, args) => {
                args.Handled = true;
                await ViewModel.PullEventsCommand.ExecuteAsync(null);
            });

            KeyboardAccelerators.Add(pullAccelerator);

            //push
            KeyboardAccelerators.Add(CreateAccelerator(VirtualKeyModifiers.Control | VirtualKeyModifiers.Shift, VirtualKey.P,
                                                       async(sender, args) => {
                args.Handled = true;
                await ViewModel.PushEventsCommand.ExecuteAsync(null);
            }));

            //search accelerator
            KeyboardAccelerators.Add(CreateAccelerator(VirtualKeyModifiers.Control, VirtualKey.F,
                                                       (sender, args) => {
                args.Handled = true;
                FilterBox.Focus(FocusState.Keyboard);
                FilterBox.SelectAll();
            }));

            //open local folder
            KeyboardAccelerators.Add(CreateAccelerator(VirtualKeyModifiers.Control, VirtualKey.E,
                                                       async(sender, args) => {
                args.Handled = true;
                await Launcher.LaunchFolderAsync(Windows.Storage.ApplicationData.Current.LocalFolder);
            }));

            //open music folder
            KeyboardAccelerators.Add(CreateAccelerator(VirtualKeyModifiers.Control, VirtualKey.M,
                                                       async(sender, args) => {
                args.Handled = true;
                await ViewModel.OpenLibraryFolder();
            }));

            //open library DB
            KeyboardAccelerators.Add(CreateAccelerator(VirtualKeyModifiers.Control, VirtualKey.D,
                                                       async(sender, args) => {
                args.Handled = true;
                Windows.Storage.StorageFile dbFile = await FileHelper.GetLibraryDbFileAsync();
                await Launcher.LaunchFileAsync(dbFile);
            }));

            //show selected item(s) in File Explorer
            KeyboardAccelerators.Add(CreateAccelerator(VirtualKeyModifiers.Control, VirtualKey.L,
                                                       async(sender, args) => {
                args.Handled = true;

                LibraryItem selected = (LibraryItem)libraryDataGrid.SelectedItem;
                await ViewModel.ShowItemInExplorer(selected);
            }));

            //show item info
            KeyboardAccelerators.Add(CreateAccelerator(VirtualKeyModifiers.Control, VirtualKey.I,
                                                       async(sender, args) => {
                args.Handled = true;

                LibraryItem selected = libraryDataGrid.SelectedItem as LibraryItem;
                if (selected != null)
                {
                    LibraryItemInfo dialog = new LibraryItemInfo(selected);
                    await dialog.ShowAsync();
                }
            }));

            //play a random bookmark
            KeyboardAccelerators.Add(CreateAccelerator(VirtualKeyModifiers.Control, VirtualKey.R,
                                                       async(sender, args) => {
                args.Handled = true;
                await ViewModel.PlayRandomBookmark();
            }));
        }
 private void KeyboardAccelerator_OnInvoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     SubFrameNavigator(typeof(DiscordStatus));
 }
Beispiel #20
0
 private async void Refresh_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args) => await Data.Refresh();
 private async void Next_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     args.Handled = true;
     await NextArchive();
 }
Beispiel #22
0
 private void SaveEvent_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     Button_Click_1(sender, null);
     args.Handled = true;
 }
Beispiel #23
0
 public static ICommand GetCommand(KeyboardAccelerator ka) => ka.GetValue(CommandProperty) as ICommand;
Beispiel #24
0
 private void GoBack_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     this.Frame.Navigate(typeof(coverPage));
 }
Beispiel #25
0
 public static object GetCommandParameter(KeyboardAccelerator ka) => ka.GetValue(CommandParameterProperty);
Beispiel #26
0
        private async void AddNewInstanceAccelerator_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
        {
            await AddNewTabByPathAsync(typeof(ModernShellPage), "NewTab".GetLocalized());

            args.Handled = true;
        }
Beispiel #27
0
 private void KeyboardAccelerator_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     (args.Element as AutoSuggestBox).Focus(FocusState.Programmatic);
 }
Beispiel #28
0
 private void TogglePlaybackAcceleratorInvoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     if (PlayerContext.MediaPlayer.PlaybackSession.PlaybackState is not MediaPlaybackState.Playing)
     {
         PlayerContext.MediaPlayer.Play();
     }
 private void BackInvoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
 {
     On_BackRequested();
     args.Handled = true;
 }
Beispiel #30
0
        /// <inheritdoc/>
        public override void AddControls()
        {
            Grid content = new Grid()
            {
                HorizontalAlignment = HorizontalAlignment.Stretch,
            };

            RowDefinition mainRow = new RowDefinition()
            {
                Height = new GridLength(1, GridUnitType.Star)
            };

            RowDefinition buttonsRow = new RowDefinition()
            {
                Height = new GridLength(59, GridUnitType.Pixel)
            };

            content.RowDefinitions.Add(mainRow);
            content.RowDefinitions.Add(buttonsRow);

            ScrollViewer mainScrollView = new ScrollViewer()
            {
                VerticalScrollBarVisibility = ScrollBarVisibility.Auto,
                VerticalScrollMode          = ScrollMode.Enabled
            };

            Grid.SetRow(mainScrollView, 0);

            mainContent            = new RelativePanel();
            mainScrollView.Content = mainContent;

            content.Children.Add(mainScrollView);

            Grid buttonsPart = new Grid();

            Grid.SetRow(buttonsPart, 1);

            RowDefinition buttonRow = new RowDefinition()
            {
                Height = new GridLength(1, GridUnitType.Star)
            };

            buttonsPart.RowDefinitions.Add(buttonRow);

            Button Cancel = new Button()
            {
                Name                = nameof(Cancel),
                Margin              = new Thickness(1, 1, 0, 1),
                FontSize            = 15,
                IsEnabled           = true,
                HorizontalAlignment = HorizontalAlignment.Stretch,
                VerticalAlignment   = VerticalAlignment.Stretch,
                Command             = (DataContext as ViewModelBase).GetPropertyValue("Close") as ICommand
            };

            StackPanel cancelContent = new StackPanel()
            {
                Orientation = Orientation.Horizontal
            };

            SymbolIcon cancelIcon = new SymbolIcon(Symbol.Cancel)
            {
                Margin = new Thickness(0, 0, 10, 0)
            };

            TextBlock cancelText = new TextBlock()
            {
                Text = "Cancel"
            };

            cancelContent.Children.Add(cancelIcon);
            cancelContent.Children.Add(cancelText);
            Cancel.Content = cancelContent;
            ToolTipService.SetToolTip(Cancel, "Cancel (Esc)");

            KeyboardAccelerator cancelKeyboardAccelerator = new KeyboardAccelerator()
            {
                Key = VirtualKey.Escape
            };

            Cancel.KeyboardAccelerators.Add(cancelKeyboardAccelerator);

            buttonsPart.Children.Add(Cancel);
            content.Children.Add(buttonsPart);

            Content = content;
        }