WPF Popup 没有单独的点击事件,但可以使用 MouseDown 或 PreviewMouseDown 事件来判断点击 Popup 的情况。

例如,可以在 XAML 中定义一个 Popup 和一个 Button,当点击 Button 时,Popup 显示出来。同时,可以在 Popup 上添加 PreviewMouseDown 事件,判断是否点击了 Popup。

XAML 代码:

<Grid>
    <Button Content="Show Popup" Click="Button_Click"/>
    <Popup x:Name="myPopup" PreviewMouseDown="myPopup_PreviewMouseDown">
        <TextBlock Text="I am a Popup!" Background="LightGray" Width="150" Height="50" />
    </Popup>
</Grid>

C# 代码:

private void Button_Click(object sender, RoutedEventArgs e)
{
    myPopup.IsOpen = true;
}

private void myPopup_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    // 判断是否点击了 Popup
    if (!VisualTreeHelper.HitTest(myPopup.Child, e.GetPosition(myPopup.Child)).Equals(null))
    {
        MessageBox.Show("You clicked the Popup!");
    }
}

在 PreviewMouseDown 事件中,使用 VisualTreeHelper.HitTest 方法来判断是否点击了 Popup 中的元素。如果是,则认为点击了 Popup,弹出提示框。

WPF Popup 点击事件

原文地址: https://www.cveoy.top/t/topic/bTQ1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录