当前位置: 首页 > 编程语言 > C#

如何在Frameworkc#WPF中禁用导航快捷方式分享

时间:2023-04-10 21:28:00 C#

如何在Frameworkc#WPF中禁用导航快捷方式“Alt+右箭头”用于向前导航)。我想使用其他键盘功能,所以我想禁用框架的导航快捷方式。谁能帮我?有一个更优雅的解决方案,可以在不实际扩展框架的情况下使用额外的行为来禁用导航。创建附加行为:使用System.Windows;使用System.Windows.Controls;使用System.Windows.Navigation;命名空间A{publicstaticclassDisableNavigation{publicstaticboolGetDisable(DependencyObjecto){return(bool)o.GetValue(DisableProperty);}publicstaticvoidSetDisable(DependencyObjecto,boolvalue){o.SetValue(DisableProperty,value);}publicstaticreadonlyDependencyPropertyDisableProperty=DependencyProperty.RegisterAttached("Disable",typeof(bool),typeof(DisableNavigation),newProperty(false,DisableChanged));publicstaticvoidDisableChanged(objectsender,DependencyPropertyChangedEventArgse){varframe=(Frame)sender;frame.Navigated+=DontNavigate;frame.NavigationUIVisibility=NavigationUIVisibility.Hidden;,NavigationEventArgse){((Frame)sender).NavigationService.RemoveBackEntry();在xaml中,无论何时使用frame添加:并在xaml顶部添加导入:xmlns:beha="clr-namespace:A"from框架本身不提供禁用导航的方法,它只提供隐藏导航控件的方法。但是,您可以继承Frame类并自己对其进行一些修改。以下示例在每次页面导航时从BackStack中删除最后一页。因此,请确保框架永远不会向后导航,因为它不知道哪一页是最后一页。classNoNavFrame:Frame{publicNoNavFrame(){this.Navigated+=newSystem.Windows.Navigation.NavigatedEventHandler(NoNavFrame_Navigated);}voidNoNavFrame_Navigated(objectsender,System.Windows.Navigation.NavigationEventArgse){this.Back.Navigation);然后你可以像这样将它包含在你的XAML中......请参阅此答案以了解如何禁用键盘快捷键:Disablebackspaceinwpf这不适用于后退和前进导航鼠标按钮。为防止这种情况,您似乎需要在Navigating事件上放置一个处理程序,如果不需要,则将其取消。例如,要完全禁用前向导航:在.xaml中:代码隐藏:voidHandleNavigating(Objectsender,NavigatingCancelEventArgse){if(e.NavigationMode==NavigationMode.Forward){e.Cancel=true;我所做的事情是将内容托管在ContentControl中。以上就是C#学习教程的全部内容:如何在框架c#WPF中禁用导航快捷方式。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: