2011-10-20 17 views
13

Bir bindirme olarak kullanılacak özel bir kontrol yapmak istiyorum. Kontrol, çizilmesi gereken ve her zamanki gibi tıklanabilir olması gereken birkaç çocuk kontrolünü içermelidir. Fakat kontroldeki her şey şeffaf ve "tıklanabilir" olmalıdır.WPF: Saydam tuval ve tıklanabilir çocuk ile bir bindirme kontrolü nasıl yapılır

Bunu nasıl elde etmeye çalıştığım ... İlk olarak, kaplamanın yerleştirileceği pencerede PreviewMouseDown \ Up \ Move olaylarını kullanıyorum. Bu olayların benim özel kontrolümün saydam kısmını "geçmesini" istiyorum, ancak şeffaf değilken (örneğin düğmemde) durmak istiyorum. Ben set Ancak eğer

<Canvas Background="transparent" IsHitTestVisible="true"> 
    <Button Canvas.Left="384" Canvas.Top="34" Content="Button" Height="23" Name="button1" Width="75" Click="button1_Click" IsHitTestVisible="True" /> 
    <TextBlock Canvas.Left="27" Canvas.Top="105" Height="36" Name="textBlock1" Text="TextBlock" Width="432" FontSize="24" IsHitTestVisible="False" Foreground="Red" FontWeight="Bold" /> 
</Canvas> 

Tuval IsHitTestVisible false, düğme dahil tüm kontrolü 'unhittable' haline gelir: İkincisi, burada kontrol (kök UserControl düğüm öylece bırakılmıştır) için xaml olduğunu. Bunu true olarak ayarladıysam, tüm tünelleme olaylarım özel denetimde durur ve düğmesi kapatılamaz hale gelir.

Bu tür davranışlara ulaşmanın doğru yolu nedir? Tuval alt sınıfı (veya başka bir panel) olmadan mümkün mü?

cevap

18

Canvas arka planını null olarak ayarlamalısınız (ya da arka plan yok, null varsayılan). Transparent, fare tıklamaları için "görünür" dir.

+0

Vay canına! çok basit! teşekkürler :) –

+0

@Pavel: Rica ederim :) – Vlad

+0

@ Vlad, merhaba, tekrar görüşmek üzere! Arka plan boş olduğunda, düğmenin tıklanamayacağı anlamına gelir, ancak arka plan şeffaf olduğunda, düğmenin tıklanması mümkün olur mu? /// Bu arada, önceki yardımlarınız için çok teşekkürler. TextHighlightBlock kontrolünü (sarı/turuncu vurgu rengi) kastediyorum. Hızlı yapmam için bana yardım ettin. Şirketimdeki pek çok adam, çalışmanın güzel bir şekilde yapıldığını ve bu conltrolün önemli bir parçası olduğunu söyledi. –