Wpf DockPanel的IsMouseOver触发器除非儿童悬停在其上方,否则不会触发
这个问题以前被问过好几次,但在这个时候,我发现没有一个答案是有效的 因此,我有一个自定义的Wpf DockPanel的IsMouseOver触发器除非儿童悬停在其上方,否则不会触发,wpf,dockpanel,Wpf,Dockpanel,这个问题以前被问过好几次,但在这个时候,我发现没有一个答案是有效的 因此,我有一个自定义的DockPanel,里面有两个子元素,一个TextBox和一个Image。 我打算让DockPanel在悬停时改变颜色,所以我在它里面放了一个触发器。但目前,只有当我将鼠标悬停在子元素上时,它才会改变颜色,而将鼠标悬停在元素之间的空白上则没有任何作用 我读过类似的文章,其中提到使用ishitestvisible,但它没有任何作用 我的代码的简短版本如下: <DockPanel> <
DockPanel
,里面有两个子元素,一个TextBox
和一个Image
。
我打算让DockPanel在悬停时改变颜色,所以我在它里面放了一个触发器。但目前,只有当我将鼠标悬停在子元素上时,它才会改变颜色,而将鼠标悬停在元素之间的空白上则没有任何作用
我读过类似的文章,其中提到使用ishitestvisible
,但它没有任何作用
我的代码的简短版本如下:
<DockPanel>
<!-- Change color on mouse hover -->
<DockPanel.Style>
<Style>
<Style.Triggers>
<Trigger Property="DockPanel.IsMouseOver" Value="True">
<Setter Property="DockPanel.Background" Value="#FFe6ffe6"/>
</Trigger>
</Style.Triggers>
</Style>
</DockPanel.Style>
<StackPanel Orientation="Vertical" DockPanel.Dock="Center">
<!-- TextBox and Image code here -->
</StackPanel>
</DockPanel>
将其添加到坞面板样式中
<Trigger Property="DockPanel.IsMouseOver" Value="False">
<Setter Property="DockPanel.Background" Value="Transparent"/>
</Trigger>