WPF를 제외하고 Adobe Lightroom (http://www.youtube.com/watch?v=87hNd3vaENE)의 Lights out/lights dim 기능과 유사한 효과를 만들려고합니다.WPF에서 마우스 이벤트를 통과시킬 수있는 반투명 창을 만드는 방법
내가 시도한 것은 기존 창 위에 다른 창을 만들어 투명하게 만들고 반투명 경로 도형을 그 위에 배치하는 것이 었습니다. 하지만 마우스 이벤트가이 반투명 창 (아래의 창)을 통과 할 수 있기를 바랍니다.
이 내가 무슨의 단순화 된 버전은 다음과 같습니다 경로가 커버하지 않는 장소에, 마우스 이벤트를 잘 통과 할 수 있도록
<Window x:Class="LightsOut.MaskWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
AllowsTransparency="True"
WindowStyle="None"
ShowInTaskbar="False"
Topmost="True"
Background="Transparent">
<Grid>
<Button HorizontalAlignment="Left" Height="20" Width="60">click</Button>
<Path IsHitTestVisible="False" Stroke="Black" Fill="Black" Opacity="0.3">
<Path.Data>
<RectangleGeometry Rect="0,0,1000,1000 "/>
</Path.Data>
</Path>
</Grid>
창은 완전히 투명합니다. 여태까지는 그런대로 잘됐다. IsHitTestvisible은 경로 개체에서 false로 설정됩니다. 따라서 마우스 이벤트는 동일한 양식의 다른 컨트롤로 전달됩니다 (즉, 동일한 양식에 있기 때문에 버튼을 클릭 할 수 있음).
그러나 마우스 이벤트는 경로 개체를 통해 그 아래에있는 창으로 전달되지 않습니다.
아이디어가 있으십니까? 또는이 문제를 해결하는 더 좋은 방법은?
감사합니다.
감사합니다. 정확히 내가 찾고 있었던 것이 었습니다. – RMK
이것은 대단합니다. 커서를 숨기는 또 다른 작업을 수행하고 싶습니다. 기본적으로 커서를 없음으로 설정하지만이 COOOOL 코드를 사용하면 창 아래에있는 내용을 기반으로 커서가 변경됩니다. 클릭 수를 창 밖으로 내리고 커서를 볼 수 없게하는 방법이 있습니까? –
완벽하게 작동합니다! WinForms 응용 프로그램의 WPF 창에서 "클릭"방식을 사용할 수있었습니다. – Alex