【问题标题】:How to not let any mouse/cursor to enter the window in WPF如何不让任何鼠标/光标进入 WPF 中的窗口
【发布时间】:2014-04-29 15:21:07
【问题描述】:

我有一个问题,如何在 wpf c# 中不允许任何鼠标/光标进入窗口。我已经尝试过 IsHitTestVisible =false 和 cursors.ovveride=none 但光标仍然可以进入并显示为箭头光标.我希望任何鼠标/光标在全屏时完全不允许进入窗口。谢谢

【问题讨论】:

  • 只是客户矩形?或者你想让系统菜单和最小化、关闭按钮也无法访问?
  • 尝试将背景色设置为透明。我曾经遇到过一个涉及类似情况的错误
  • @GarryVass- 我的窗口已最大化,Topmost="True" ResizeMode="NoResize" WindowStyle="None"
  • "无法进入" ?还是“隐形”? “无法进入”可能需要强制将鼠标移出所需位置...我不确定 WPF 中是否提供这些可访问性 API。
  • @user3178993,您是否查看过“基于计算机的培训 API”? CBT 应用程序必须控制鼠标、键盘和其他设备。在 CBT 应用程序期间,屏幕保护程序也会被禁用。也许这就是你所追求的模式?

标签: c# wpf


【解决方案1】:

我不确定这是否是您在谈论的内容,但这是一个粗略的示例,只要鼠标进入,它就会将鼠标移出表单:

    private void Form1_MouseEnter(object sender, EventArgs e)
    {
        Cursor.Position = new Point(this.Location.X - 1, this.Location.Y - 1);
    }

【讨论】:

    【解决方案2】:

    在 XAML 中:

    <Window x:Class="MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Cursor="None">
    

    在代码中(在窗口的构造函数中):

     this.Cursor = Cursors.None;
    

    【讨论】:

    • 这会将光标设置为不可见,但当其中一个控件添加滚动查看器时会失败。您还可以使用 Cursor="None" 访问菜单项
    【解决方案3】:

    如果您只想隐藏光标(而不是阻止它进入您的窗口区域),您可以在窗口的 MouseEnter 和 MouseLeave 事件上使用适当的参数调用 ShowCursor

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 2020-01-09
      • 2011-01-29
      相关资源
      最近更新 更多