如何禁用 WPF Expander Control isPressed/onMouseClick 事件?
How to disable WPF Expander Control isPressed/onMouseClick event?
我有一个带有 Expander 控件的 WPF 应用程序。我希望扩展控件仅根据 IsMouseOver 事件进行扩展。我能够通过在 ControlTemplate.Triggers 中实现相应的触发器来启用 IsMouseOver 行为。但我不知道如何禁用 IsPressed/OnMouseClick 事件。非常感谢任何关于如何做的建议。谢谢
您可以处理在默认模板中称为 "HeaderSite" 的 ToggleButton
的 PreviewMouseLeftButtonDown
事件:
private void HeaderSite_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
=> e.Handled = true;
XAML:
<ToggleButton x:Name="HeaderSite" PreviewMouseLeftButtonDown="HeaderSite_PreviewMouseLeftButtonDown" ContentTemplate="{TemplateBinding HeaderTemplate}" ... />
请记住,XAML 是一种 标记 语言,您应该使用 C# 等编程语言实现这种行为。
如果您的模板是在 ResourceDictionary
中定义的,您应该向其中添加一个 code-behind class 并在其中定义事件处理程序。
我有一个带有 Expander 控件的 WPF 应用程序。我希望扩展控件仅根据 IsMouseOver 事件进行扩展。我能够通过在 ControlTemplate.Triggers 中实现相应的触发器来启用 IsMouseOver 行为。但我不知道如何禁用 IsPressed/OnMouseClick 事件。非常感谢任何关于如何做的建议。谢谢
您可以处理在默认模板中称为 "HeaderSite" 的 ToggleButton
的 PreviewMouseLeftButtonDown
事件:
private void HeaderSite_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
=> e.Handled = true;
XAML:
<ToggleButton x:Name="HeaderSite" PreviewMouseLeftButtonDown="HeaderSite_PreviewMouseLeftButtonDown" ContentTemplate="{TemplateBinding HeaderTemplate}" ... />
请记住,XAML 是一种 标记 语言,您应该使用 C# 等编程语言实现这种行为。
如果您的模板是在 ResourceDictionary
中定义的,您应该向其中添加一个 code-behind class 并在其中定义事件处理程序。