如何禁用 WPF Expander Control isPressed/onMouseClick 事件?

How to disable WPF Expander Control isPressed/onMouseClick event?

我有一个带有 Expander 控件的 WPF 应用程序。我希望扩展控件仅根据 IsMouseOver 事件进行扩展。我能够通过在 ControlTemplate.Triggers 中实现相应的触发器来启用 IsMouseOver 行为。但我不知道如何禁用 IsPressed/OnMouseClick 事件。非常感谢任何关于如何做的建议。谢谢

您可以处理在默认模板中称为 "HeaderSite" 的 ToggleButtonPreviewMouseLeftButtonDown 事件:

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 并在其中定义事件处理程序。