首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF网格IsMouseOver属性

WPF网格IsMouseOver属性
EN

Stack Overflow用户
提问于 2011-03-22 17:27:17
回答 2查看 11.1K关注 0票数 17

WPF网格有一个"IsMouseOver“属性,您可以在网格样式的触发器中使用它。

我的问题是,"IsMouseOver“属性只有在鼠标位于网格本身内的某个控件(即按钮或ComboBox)之上时才会发生更改。

例如:

代码语言:javascript
复制
<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>

上面的Grid和它的内容将以半不透明的形式显示,这样您就可以看到控件。

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

但是,如果您悬停在第二列的按钮上,则不透明度将设置为完全。

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

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

谢谢!

-Frinny

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-22 17:32:32

您的问题是网格本身并不是可测试的,因为它没有背景。试一试:

代码语言:javascript
复制
<Grid Background="Transparent">
票数 30
EN

Stack Overflow用户

发布于 2011-03-22 17:31:02

将网格背景设置为透明,然后它就可以工作了。

要了解为什么会这样,请看这儿

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5395351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档