J'essaie de créer un effet similaire à la fonction Lights out/lights dim dans Adobe Lightroom (http://www.youtube.com/watch?v=87hNd3vaENE) sauf dans WPF.Comment créer une fenêtre semi-transparente dans WPF qui permet aux événements de la souris de passer
Ce que j'ai essayé était de créer une autre fenêtre au-dessus de ma fenêtre existante, de la rendre transparente et d'y placer une géométrie Path semi-transparente. Mais je veux que les événements souris puissent traverser cette fenêtre semi-transparente (sur les fenêtres ci-dessous).
Ceci est une version simplifiée de ce que j'ai:
<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>
La fenêtre est entièrement transparente, donc sur les lieux où le chemin ne couvre pas, les événements de la souris passent à travers. Jusqu'ici tout va bien. Le IsHitTestvisible est défini sur false sur l'objet chemin. Ainsi, les événements de souris le traversent vers d'autres contrôles sur le même formulaire (c'est-à-dire que vous pouvez cliquer sur le bouton, car il se trouve sur le même formulaire). Mais les événements de souris ne traversent pas l'objet Path sur les fenêtres situées en dessous.
Des idées? Ou de meilleures façons de résoudre ce problème?
Merci.
Merci c'est exactement ce que je cherchais. – RMK
c'est génial, je voudrais juste accomplir une chose de plus: cacher le curseur. En règle générale, régler le curseur sur None, mais avec ce code COOOOL en place, le curseur change en fonction de ce qui se trouve sous la fenêtre. Est-il possible de faire tomber les clics dans notre fenêtre ET de ne pas avoir le curseur visible? –
fonctionne parfaitement! J'ai été en mesure d'utiliser votre "click through" méthode sur la fenêtre WPF dans l'application WinForms. – Alex