<small id='uoBHA'></small><noframes id='uoBHA'>

    <tfoot id='uoBHA'></tfoot>

      <i id='uoBHA'><tr id='uoBHA'><dt id='uoBHA'><q id='uoBHA'><span id='uoBHA'><b id='uoBHA'><form id='uoBHA'><ins id='uoBHA'></ins><ul id='uoBHA'></ul><sub id='uoBHA'></sub></form><legend id='uoBHA'></legend><bdo id='uoBHA'><pre id='uoBHA'><center id='uoBHA'></center></pre></bdo></b><th id='uoBHA'></th></span></q></dt></tr></i><div id='uoBHA'><tfoot id='uoBHA'></tfoot><dl id='uoBHA'><fieldset id='uoBHA'></fieldset></dl></div>
      <legend id='uoBHA'><style id='uoBHA'><dir id='uoBHA'><q id='uoBHA'></q></dir></style></legend>
        <bdo id='uoBHA'></bdo><ul id='uoBHA'></ul>

      如何在框架 c# WPF 中禁用导航快捷方式

      时间:2023-07-26
      <i id='hrSmS'><tr id='hrSmS'><dt id='hrSmS'><q id='hrSmS'><span id='hrSmS'><b id='hrSmS'><form id='hrSmS'><ins id='hrSmS'></ins><ul id='hrSmS'></ul><sub id='hrSmS'></sub></form><legend id='hrSmS'></legend><bdo id='hrSmS'><pre id='hrSmS'><center id='hrSmS'></center></pre></bdo></b><th id='hrSmS'></th></span></q></dt></tr></i><div id='hrSmS'><tfoot id='hrSmS'></tfoot><dl id='hrSmS'><fieldset id='hrSmS'></fieldset></dl></div>

            <bdo id='hrSmS'></bdo><ul id='hrSmS'></ul>
              <tbody id='hrSmS'></tbody>

            <tfoot id='hrSmS'></tfoot>
            • <small id='hrSmS'></small><noframes id='hrSmS'>

              <legend id='hrSmS'><style id='hrSmS'><dir id='hrSmS'><q id='hrSmS'></q></dir></style></legend>

                本文介绍了如何在框架 c# WPF 中禁用导航快捷方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                如何禁用框架中的导航快捷方式(例如,用于向后导航的Backspace"和用于向前导航的Alt+右箭头").

                How can I disable the navigation shortcuts in a frame (for example the "Backspace" for navigation backward and "Alt+Right arrow" for navigation forward).

                我想使用其他键盘功能,所以我想禁用框架的导航快捷键.

                I want to use other keyboard functions, so I want to disable the navigation shortcuts of the frame.

                谁能帮帮我?

                推荐答案

                有一个更优雅的解决方案,可以使用附加行为来禁用导航,而无需实际扩展框架.

                there is a more elegant solution where Attached behaviours can be used to disable navigation without actually extending a frame.

                创建附加行为:

                using System.Windows;
                using System.Windows.Controls;
                using System.Windows.Navigation;
                
                namespace A
                {
                    public static class DisableNavigation
                    {
                        public static bool GetDisable(DependencyObject o)
                        {
                            return (bool)o.GetValue(DisableProperty);
                        }
                        public static void SetDisable(DependencyObject o, bool value)
                        {
                            o.SetValue(DisableProperty, value);
                        }
                
                        public static readonly DependencyProperty DisableProperty =
                            DependencyProperty.RegisterAttached("Disable", typeof(bool), typeof(DisableNavigation),
                                                                new PropertyMetadata(false, DisableChanged));
                
                
                
                        public static void DisableChanged(object sender, DependencyPropertyChangedEventArgs e)
                        {
                            var frame = (Frame)sender;
                                       frame.Navigated += DontNavigate;
                            frame.NavigationUIVisibility = NavigationUIVisibility.Hidden;
                        }
                
                        public static void DontNavigate(object sender, NavigationEventArgs e)
                        {
                            ((Frame)sender).NavigationService.RemoveBackEntry();
                        }
                    }
                }
                

                并且在 xaml 中添加这个每当你使用一个框架:

                And in the xaml add this whenever you use a frame :

                <Frame beha:DisableNavigation.Disable="True" />
                

                并在 xaml 顶部添加导入:

                and at the top of the xaml add the import :

                xmlns:beha="clr-namespace:A"
                

                这篇关于如何在框架 c# WPF 中禁用导航快捷方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:按钮的键盘快捷键 下一篇:SetWindowsHookEx 全局键盘挂钩未捕获所有按键

                相关文章

                  1. <legend id='UXjNq'><style id='UXjNq'><dir id='UXjNq'><q id='UXjNq'></q></dir></style></legend>
                    <tfoot id='UXjNq'></tfoot>
                    • <bdo id='UXjNq'></bdo><ul id='UXjNq'></ul>

                    <small id='UXjNq'></small><noframes id='UXjNq'>

                    <i id='UXjNq'><tr id='UXjNq'><dt id='UXjNq'><q id='UXjNq'><span id='UXjNq'><b id='UXjNq'><form id='UXjNq'><ins id='UXjNq'></ins><ul id='UXjNq'></ul><sub id='UXjNq'></sub></form><legend id='UXjNq'></legend><bdo id='UXjNq'><pre id='UXjNq'><center id='UXjNq'></center></pre></bdo></b><th id='UXjNq'></th></span></q></dt></tr></i><div id='UXjNq'><tfoot id='UXjNq'></tfoot><dl id='UXjNq'><fieldset id='UXjNq'></fieldset></dl></div>