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>