可以在 WPF 的导航窗口中禁用 F5 键吗?

发布于 2024-10-18 11:50:43 字数 91 浏览 5 评论 0原文

我有一个使用导航窗口和一组页面的小型应用程序。我的应用程序本身不是浏览器,因此我不希望用户能够通过按 F5 刷新页面。有没有办法在我的应用程序中禁用此键?非常感谢大家。

I have a small application that uses a navigation window and a set of pages. My application is not a browser per se and thus I dont want the user to be able to refresh the page by pressing F5. Is there a way to disable this key in my application? Many thanks all.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

睫毛上残留的泪 2024-10-25 11:50:43

您可以通过将处理程序附加到 Navigating 事件来完全禁用刷新:

yourNavigationWindow.Navigating += OnNavigating;

// ...

void OnNavigating(object sender, NavigatingCancelEventArgs e)
{
    if(e.NavigationMode == NavigationMode.Refresh)
        e.Cancel = true;
}        

You could disable refreshing altogether, by attaching a handler to the Navigating event:

yourNavigationWindow.Navigating += OnNavigating;

// ...

void OnNavigating(object sender, NavigatingCancelEventArgs e)
{
    if(e.NavigationMode == NavigationMode.Refresh)
        e.Cancel = true;
}        
无需解释 2024-10-25 11:50:43

您可以尝试从 NavigationWindow 中删除 CommandBinding。
NavigationCommand.Refresh

类似:

CommandBinding removeBinding=null;
foreach(CommandBinding cb in navigationWindow.CommandBindings){
 if(cb.Command==NavigationCommand.Refresh){
   removeBinding=cb;
   break;
 }
 if(removeBinding != null){
   navigationWindow.CommandBindings.Remove(removeBinding);
 }

}

You can try to remove the CommandBinding from the NavigationWindow.
NavigationCommand.Refresh

Something like:

CommandBinding removeBinding=null;
foreach(CommandBinding cb in navigationWindow.CommandBindings){
 if(cb.Command==NavigationCommand.Refresh){
   removeBinding=cb;
   break;
 }
 if(removeBinding != null){
   navigationWindow.CommandBindings.Remove(removeBinding);
 }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文