【问题标题】:Mouseover effect on full stretch button完全拉伸按钮上的鼠标悬停效果
【发布时间】:2014-10-07 11:03:02
【问题描述】:

我正在使用 WPF 按钮鼠标在屏幕中显示特定区域,并且我在代码中使用下面的 xaml

http://pastebin.com/Rn0CVAHA.

如果我删除按钮控件的 Background="Red" 属性,我必须准确单击中心才能在屏幕上显示我的区域。 截图是

如何使按钮控件在没有背景颜色的情况下工作,但可以拉伸内容效果?就像点击按钮区域的任意位置应该显示内容一样

【问题讨论】:

  • 您是否尝试将背景颜色设置为透明?
  • @Krishna,您已经正确确定了解决方案。请在答案中添加(希望有更多信息),以便可以将此问题标记为已回答。谢谢。
  • 是的,我正在尝试使用透明按钮。但是有什么方法可以让它内容拉伸吗?
  • wpf 鼠标事件仅适用于非空客户区域(非透明)。您可以使用一个简单的技巧 - 放置一些不透明的东西来接受鼠标事件之后是透明的。
  • 你能帮我编辑类似的东西吗?我想显示这个 BUton 控件背后的内容 [或按钮位于浏览器控件之上]

标签: c# wpf xaml


【解决方案1】:

我猜这是您代码中的违规行

<Border Name="border" Background="Red">
      <ContentPresenter  VerticalAlignment="Center" HorizontalAlignment="Stretch" />
</Border>

问题是,当您删除边框的背景时,边框上没有 hittest 来响应鼠标触发器(在您的情况下为 IsMouseOver)

诀窍是将背景画笔设置为透明,以便背景可以被点击测试并响应您的触发器。

所以尝试将您的边框更改为

<Border Name="border" Background="Transparent">
          <ContentPresenter  VerticalAlignment="Center" HorizontalAlignment="Stretch" />
    </Border>

您可以在MSDN 上阅读更多关于命中测试的信息

【讨论】:

  • 透明色不起作用。我很确定(但不是 100%,因此没有反对意见)。
  • 我尝试了很多以使其适用于整个区域,但没有任何成功。任何人都可以帮助清除我发布的 xaml
  • @JMat 对不起,我不明白这个问题。当我将边框的背景画笔从红色更改为透明时,我仍然可以将鼠标悬停在按钮的任何部分上以运行故事板吗?你能提供更多关于你的问题的细节吗?
猜你喜欢
  • 1970-01-01
  • 2013-01-17
  • 1970-01-01
  • 2013-06-15
  • 2010-12-04
  • 1970-01-01
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多