Я хочу создать пользовательский элемент управления, который будет использоваться в качестве наложения. Элемент управления должен содержать пару дочерних элементов управления, которые должны быть нарисованы и должны быть кликабельными, как обычно. Но все остальное в контроле должно быть прозрачным и «кликабельным».
Вот как я пытаюсь добиться этого... Во-первых, я использую события PreviewMouseDown\Up\Move в окне, где будет размещен оверлей. Я хочу, чтобы эти события «проходили» через прозрачную часть моего пользовательского элемента управления, но останавливались на непрозрачном (например, на моей кнопке). Во-вторых, вот xaml для моего элемента управления (корневой узел UserControl остался нетронутым):
<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>
Однако, если я установлю для Canvas IsHitTestVisible значение false, весь элемент управления, включая кнопку, станет «неуязвимым». Если установить для него значение true, все события туннелирования останавливаются на пользовательском элементе управления, и кнопка становится недоступной для нажатия.
Как правильно добиться такого поведения? Можно ли сделать это без подкласса холста (или любой другой панели)?