检测控件外部的点击

  • 本文关键字:外部 控件 c# .net wpf
  • 更新时间 :
  • 英文 :


当用户单击按钮时,我在网格中显示TestControl:

<Grid>
    <myControls:TestControl Panel.ZIndex="2" Visibility="Collapsed" Width="100" Height="100" />
    <Button "Open Test Control" Click="btnOpen_Click" />
</Grid>

当用户单击此控件之外时,如何隐藏测试控件?

您可以处理GridPreviewMouseLeftButtonDown事件:

<Grid Background="Transparent" PreviewMouseLeftButtonDown="Grid_PreviewMouseLeftButtonDown">
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <myControls:TestControl x:Name="tc" Visibility="Collapsed" Width="100" Height="100" />
    <Button Content="Open Test Control" Click="btnOpen_Click" Grid.Row="1" />
</Grid>

private void Grid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    if (!tc.IsMouseOver)
        tc.Visibility = Visibility.Collapsed;
}

还没有尝试过,但 LostFocus 事件可能是一种方法,因为您在显示测试控件后将焦点设置为测试控件。

最新更新