我有以下边界:
<Border CornerRadius="10,10,0,0" Height="23"
HorizontalAlignment="Center"
VerticalAlignment="Center"
BorderBrush="DarkBlue"
BorderThickness="1"
Background="AntiqueWhite">
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Center">
<Image Source="/Resources/Info_48.png"
Height="20"
Width="20"
Stretch="Fill"/>
<TextBlock Width="90"
VerticalAlignment="Center"
HorizontalAlignment="Left"
Background="Transparent"
FontSize="12">
<Run Text="This is a Popup simulation"/>
</TextBlock>
</StackPanel>
</Border>
显示面板时,此边框可见。一旦显示了边框和子组件,它们将在窗口的任何位置单击鼠标时自动隐藏。
我要做的是检测boder及其子组件之外的鼠标单击事件。一旦在外部检测到点击,我需要在StaysOpen = false时隐藏边框及其子组件,类似于弹出窗口,并且在鼠标单击时自动隐藏。
如何检测控件外的鼠标点击?
答案 0 :(得分:0)
将边框的样式设置为可见或通过更改颜色等隐藏边框。
<Border Background="Transparent"
Height="18" Width="18">
<Border.Style>
<Style Target-type="Border">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="visibility" Value="false" />
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>