当您单击它时,我有一个带有事件处理程序的自定义控件。一切正常,事件被正确触发。
AddHandler (cu.MouseLeftButtonDown), AddressOf Me.DoSomething
当控件调整大小以显示一些额外的信息时,它会展开。当用户按下按钮时,它也会折叠。这工作正常。但是现在当我单击扩展区域曾经所在的位置时,它仍然会在该控件上触发鼠标 leftbuttondown。我试图在展开的元素上将 IsHitTestVisible 设置为 false,但它不起作用。这是一些xaml ...
<UserControl x:Class="MyCustomControl">
<StackPanel>
<Grid>
'Stuff thats always visible
</Grid>
<Border IsHitTestVisible="False" Grid.Row="1" HorizontalAlignment="left" BorderThickness="1" VerticalAlignment="top" x:Name="overView" Background="#EEEEEE" Visibility="Hidden" Margin="-325,-95,0,0" Width="auto" Height="auto" Padding="5,5,5,5" BorderBrush="#999999" CornerRadius="3,3,3,3">
<Border IsHitTestVisible="False" x:Name="myBorder" Margin="1" Width="300" Height="225" BorderThickness="1" BorderBrush="#999999" Background="#DDDDDD" CornerRadius="3,3,3,3" HorizontalAlignment="Left" VerticalAlignment="Top">
<Rectangle IsHitTestVisible="False" x:Name="rtgOverView">
</Rectangle>
</Border>
</Border>
</StackPanel>
</UserControl>
当我使用此代码时,概述变得可见
overView.Visibility = Windows.Visibility.Visible
当我使用它时隐藏起来
OverView.Visibility = Windows.Visibility.Collapsed
我用视觉刷填充矩形。加载控件时会发生这种情况。
rtgOverView.Fill = visual
overView 像这样定位在后面的代码中
If x > 350 Then
overView.HorizontalAlignment = Windows.HorizontalAlignment.Left
overView.Margin = New Thickness(-325, -95, 0, 0)
Else
overView.HorizontalAlignment = Windows.HorizontalAlignment.Right
overView.Margin = New Thickness(0, -95, -300, 0)
End If
我不能在我的 customcontrol 周围使用另一个元素,因为我也在所有不同类型的控件上使用这个 MouseLeftButtonDown。我无法弄清楚 cu.MouseLeftButtonDown 事件的边界是如何解决这个问题的。