WPF网格IsMouseOver属性

WPF网格IsMouseOver属性,wpf,Wpf,具有“IsMouseOver”属性,可以在网格样式的触发器中使用 我的问题是,“IsMouseOver”属性只有在鼠标位于网格本身的某个控件(即按钮或组合框)上时才会更改 例如: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="25" /> <ColumnDefinition /> </Grid.ColumnDefinitions> <

具有“IsMouseOver”属性,可以在网格样式的触发器中使用

我的问题是,“IsMouseOver”属性只有在鼠标位于网格本身的某个控件(即按钮或组合框)上时才会更改

例如:

<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="25" />
    <ColumnDefinition />
  </Grid.ColumnDefinitions>

  <Button Grid.Column="1">A Button</Button>

  <Grid.Style>
    <Style TargetType="{x:Type Grid}">
      <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="False">
          <Setter Property="Opacity" Value="0.5"></Setter>
        </Trigger>
        <Trigger Property="IsMouseOver" Value="True">
          <Setter Property="Opacity" Value="1"></Setter>
        </Trigger>
      </Style.Triggers>
    </Style>
  </Grid.Style>
</Grid>

钮扣
上面的网格及其内容将以半透明度显示,以便您可以看到控件

您会注意到,如果将鼠标悬停在第一列(不包含任何内容)上,不透明度将不会设置为完全

但是,如果将鼠标悬停在第二列中的按钮上,不透明度将设置为“完全”

在我的应用程序中,设置触发器的网格显示在图像控件的顶部。我不希望网格显示,直到鼠标悬停在图像上。。。换句话说,由于网格位于图像的顶部,我不希望在鼠标悬停在网格上(网格中的任何位置)之前显示网格,因为网格位于图像的顶部

有人知道如何做到这一点吗

谢谢


-Frinny

将网格背景设置为透明,然后它应该可以工作


有关详细信息,请

您的问题是网格本身不可命中测试,因为它没有背景。请尝试以下方法:

<Grid Background="Transparent">


非常感谢您的回复!非常感谢您的回复!补充信息很有帮助。