【问题标题】:WPF - different hover cursor if Ctrl key is pressedWPF - 如果按下 Ctrl 键,则悬停光标不同
【发布时间】:2017-08-10 06:28:53
【问题描述】:

当我将鼠标悬停在 WPF 树中的项目上时,我想要一个普通光标,除非控制键按下,在这种情况下,我希望它是一个手形光标。

你建议我怎么做?

【问题讨论】:

    标签: wpf cursor mouseover


    【解决方案1】:

    您可以处理窗口的PreviewKeyDownPreviewKeyUp 事件并设置Cursor 属性,例如:

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
    
            PreviewKeyDown += (s, e) => 
            {
                if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
                    this.Cursor = Cursors.Hand;
            };
            PreviewKeyUp += (s, e) => 
            {
                this.Cursor = null;
            };
     }
    

    【讨论】:

    • 偷偷摸摸的解决方案,我喜欢它!唉,我不能用。手形光标将应用于整个树、所有树项目以及它们周围属于树但不属于项目的所有区域。此外,对于我的场景,我只希望某些树项具有手形光标。我试图将此处理程序添加到树项,但事件处理程序中的发送者原来是选定的项,而不是鼠标下的那个。我没想到这会如此棘手。
    • 您想解释一下您的情况下的“树项”是什么。请提供您问题的完整但最少的 repo。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 2010-09-23
    • 2013-08-09
    • 2016-06-09
    • 2013-08-09
    相关资源
    最近更新 更多