How disable navigation shortcuts in frame c# WPF(如何在框架 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 中禁用导航快捷方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在框架 c# WPF 中禁用导航快捷方式


- CanBeNull和ReSharper-将其用于异步任务? 2022-01-01
- 带问号的 nvarchar 列结果 2022-01-01
- Windows 喜欢在 LINUX 中使用 MONO 进行服务开发? 2022-01-01
- 在 LINQ to SQL 中使用 contains() 2022-01-01
- 为什么 C# 中的堆栈大小正好是 1 MB? 2022-01-01
- Azure Active Directory 与 MVC,客户端和资源标识同一 2022-01-01
- 在 C# 中异步处理项目队列 2022-01-01
- 是否可以在 .Net 3.5 中进行通用控件? 2022-01-01
- 使用 rss + c# 2022-01-01
- C# 通过连接字符串检索正确的 DbConnection 对象 2022-01-01