8 votes

Rendre un contrôle "transparent" aux événements de clics

J'ai une ListBox qui affiche certains éléments et, dans certains modes, je "tamponne" une sorte de filigrane en haut de la liste. Je l'ai fait avec une bordure contenant un bloc de texte avec une opacité de 0,5. Tout cela fonctionne bien.

Cependant, je veux toujours que l'utilisateur puisse cliquer sur les éléments de la liste, mais si je clique sur le "timbre", les événements de clic sont consommés et ne sont pas vus par la liste.

Que dois-je faire pour éviter cela ? (c.-à-d. permettre à la ListBox de voir l'événement Click)

Merci,

Craig

16voto

Robert Macnee Points 6998

Vous pouvez le faire avec le IsHitTestVisible propriété :

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ListBox>
        <ListBoxItem>a</ListBoxItem>
        <ListBoxItem>b</ListBoxItem>
        <ListBoxItem>c</ListBoxItem>
    </ListBox>
    <Border Opacity="0.2" Background="Cyan" BorderBrush="Black" BorderThickness="5" IsHitTestVisible="False" >
        <TextBlock Text="EXAMPLE" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Border>
</Grid>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X