WPF альфа-порог - PullRequest
       25

WPF альфа-порог

0 голосов
/ 21 сентября 2011

Есть ли альфа-порог в WPF? Я использую кисть # 01000000, и на некоторых компьютерах она непрозрачна в отношении проверки нажатия мыши (щелчок по поверхности этой кистью), но на некоторых других компьютерах она считается полностью прозрачной и щелчком мыши. В чем дело?

UPD1: @ Ален Нет. Свойство IsHitTestVisible не зависит от альфа-клика. Здесь тело границы можно нажимать на всех компьютерах:

<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 в обоих случаях.

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Интересно, что Дэвид Энсон говорит в своем блоге здесь:

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

Что вы можете просто установить его на прозрачный. Я всегда использовал # 01000000 как OP. Один из комментаторов в блоге Дэвида говорит, что Transparent не работает для них. Интересно, связано ли это с проблемой ОП # 0100000, работающей на некоторых компьютерах, а не на других? Возможно, есть какая-то разница, кроме запуска его на разных компьютерах?

0 голосов
/ 21 сентября 2011

Вы должны установить это явно, используя свойство IsHitTestVisible.

...