【问题标题】:WPF alpha thresholdWPF 阿尔法阈值
【发布时间】:2011-11-22 02:43:20
【问题描述】:

WPF 中是否有任何 alpha 阈值?我使用笔刷#01000000,在某些计算机上,它在鼠标点击测试方面是不透明的(用这个笔刷点击表面),但在其他一些计算机上,它被认为是完全透明的并且鼠标点击通过。什么情况?

UPD1:@Alain 不。 IsHitTestVisible 属性独立于 alpha 点击。这里的边框主体在所有计算机上都可以点击:

<Window
    x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" WindowStyle="None" AllowsTransparency="True" Background="Transparent">
    <Border BorderBrush="Red" BorderThickness="20" Background="#00000000" IsHitTestVisible="True"/>
</Window>

这里不是(但在某些计算机上仍然可以点击——这就是问题所在):

<Window
    x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" WindowStyle="None" AllowsTransparency="True" Background="Transparent">
    <Border BorderBrush="Red" BorderThickness="20" Background="#01000000" IsHitTestVisible="True"/>
</Window>

IsHitTestVisible 在这两种情况下都是 True。

【问题讨论】:

    标签: wpf opacity alpha


    【解决方案1】:

    有趣的是,David Anson 在他的博客中说:

    http://blogs.msdn.com/b/delay/archive/2011/08/18/invisible-pixels-are-just-as-clickable-as-real-pixels-tip-use-a-transparent-brush-to-make-quot-empty-quot-parts-of-a-xaml-element-respond-to-mouse-and-touch-input.aspx

    您可以将其设置为透明。我一直像 OP 一样使用#01000000。大卫博客上的一个常识说透明对他们不起作用。我想知道这是否与#0100000 在某些计算机而不是其他计算机上工作的OP 问题有关。除了在不同的计算机上运行之外,也许还有一些区别?

    【讨论】:

    • 默认值为{x:Null},不接受鼠标输入。将画笔设置为透明使其响应鼠标输入。
    • 很遗憾我不在稳定时出现问题的计算机附近。我有两台计算机,通过相同的 ClickOnce 链接执行相同的程序。一台有问题(点击),另一台计算机正常。关于透明画笔。我的观察是,透明画笔仅在同一 PresentationSource(一个窗口)的边界中不可点击。我需要使用带 AllowsTransparency="True" 的窗口,在这种情况下,只有 #01000000 笔刷才能使表面透明但不可点击。在这种情况下,透明画笔不起作用。
    • 啊,我明白你在说什么,维克多。单击 WPF 窗口中的一个元素到同一窗口中的另一个元素与单击整个 WPF 窗口到其后面的另一个应用程序之间的区别。对吗?
    【解决方案2】:

    您应该使用IsHitTestVisible 属性显式设置。

    【讨论】:

      猜你喜欢
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多