在我的 UWP 应用程序 ComboBox 中,当 IsEditable 为 False 时,我们在单击控件后立即触发 PointerExited 事件
In my UWP application ComboBox, PointerExited event fired right after we click on the control when IsEditable is False
好像有类似的问题但是没有解决
我在我的 WinRT/C++ 应用程序中使用组合框,需要将鼠标悬停在它上面时将光标显示为手形。问题是当点击它时,光标变成箭头,因为 PointerExited 被触发。我添加了代码以在“PointerEntered”时将光标更改为 Hand,在“PointerExited”时更改为箭头。
仅当 IsEditable 设置为 False 时才会出现此问题。当 bool 标志为 True 时,它按预期工作。
我想解决这个不必要的 PointerExited 触发问题,即,只要我在组合框区域,我就想显示“手”。
组合框由两个主要部分组成。一个是显示所选项目的 ContentPresenter
,另一个是显示项目的 PopUp
。您正在处理的 PointerEntered 事件属于 ContentPresenter
部分。当您单击组合框并且 PopUp
覆盖在 ContentPresenter
部分时,PointerExited 将被触发,因为光标正在进入 PopUp
。目前,没有办法避免这种行为。
对此没有完美的解决方案。解决方法是您可以处理 PopUp
中 ScrollViewer
的 PointerEntered 事件。在该事件中将光标类型更改为手,就像您在 PointerEntered 事件和 Combobox
.
的 **PointerExited ** 事件中所做的一样
请检查以下步骤:
- 从 generic.xaml 文件获取
ComboBox
控件的默认样式,并将该样式应用到您的 ComboBox
控件。
- 在添加的样式中找到
ScrollViewer
控件,并为PointerEntered事件和PointerExited事件添加事件处理程序。
- 更改处理程序中的游标类型。
这是基本步骤,您可能需要检查其他逻辑,例如所选项目的更改,以确保在这种情况下光标的类型正确。
好像有类似的问题但是没有解决
我在我的 WinRT/C++ 应用程序中使用组合框,需要将鼠标悬停在它上面时将光标显示为手形。问题是当点击它时,光标变成箭头,因为 PointerExited 被触发。我添加了代码以在“PointerEntered”时将光标更改为 Hand,在“PointerExited”时更改为箭头。
仅当 IsEditable 设置为 False 时才会出现此问题。当 bool 标志为 True 时,它按预期工作。
我想解决这个不必要的 PointerExited 触发问题,即,只要我在组合框区域,我就想显示“手”。
组合框由两个主要部分组成。一个是显示所选项目的 ContentPresenter
,另一个是显示项目的 PopUp
。您正在处理的 PointerEntered 事件属于 ContentPresenter
部分。当您单击组合框并且 PopUp
覆盖在 ContentPresenter
部分时,PointerExited 将被触发,因为光标正在进入 PopUp
。目前,没有办法避免这种行为。
对此没有完美的解决方案。解决方法是您可以处理 PopUp
中 ScrollViewer
的 PointerEntered 事件。在该事件中将光标类型更改为手,就像您在 PointerEntered 事件和 Combobox
.
请检查以下步骤:
- 从 generic.xaml 文件获取
ComboBox
控件的默认样式,并将该样式应用到您的ComboBox
控件。 - 在添加的样式中找到
ScrollViewer
控件,并为PointerEntered事件和PointerExited事件添加事件处理程序。 - 更改处理程序中的游标类型。
这是基本步骤,您可能需要检查其他逻辑,例如所选项目的更改,以确保在这种情况下光标的类型正确。