Wpf 消息冻结UI应用程序,而不使用弹出消息框

Wpf 消息冻结UI应用程序,而不使用弹出消息框,wpf,xaml,messagebox,adornerlayer,Wpf,Xaml,Messagebox,Adornerlayer,我们正在与WPF合作。我们有一个应用程序,有多个屏幕,左边有一棵树。 在其中一个节点中,用户添加、编辑和删除该树中的节点。 因此,当用户按下delete message时,如果他真的想删除或不删除(Yes/Cancel)消息,我们需要向用户显示一条消息,它需要冻结整个应用程序。然后用户被迫做出决定。 同时,我们不想要弹出消息。我们需要像装饰品这样的东西。 显示灰色背景(这意味着整个应用程序已冻结),我们可以在其中承载一个带有消息的边框。 我们需要装饰器的替代选项。您可以使用类似的选项 <W

我们正在与WPF合作。我们有一个应用程序,有多个屏幕,左边有一棵树。 在其中一个节点中,用户添加、编辑和删除该树中的节点。 因此,当用户按下delete message时,如果他真的想删除或不删除(Yes/Cancel)消息,我们需要向用户显示一条消息,它需要冻结整个应用程序。然后用户被迫做出决定。 同时,我们不想要弹出消息。我们需要像装饰品这样的东西。 显示灰色背景(这意味着整个应用程序已冻结),我们可以在其中承载一个带有消息的边框。
我们需要装饰器的替代选项。

您可以使用类似的选项

<Window x:Class="WpfApplication5.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
    <Grid>
        <Border Name="msg" Background="#20A0A0A0" Visibility="Hidden">
            <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
                <Button Margin="10" Click="Button_Click_1">Yes</Button>
                <Button Margin="10" Click="Button_Click_1">No</Button>
            </StackPanel>
        </Border>
        <Border Name="main">
            <StackPanel>
                <TextBlock Text="tex"/>
                <Button Click="Button_Click">Delete</Button>
                <Button>Another button</Button>
                </StackPanel>
        </Border>

    </Grid>
</Window>

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        msg.Visibility = System.Windows.Visibility.Visible;
        main.IsEnabled = false;
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        msg.Visibility = System.Windows.Visibility.Hidden;
        main.IsEnabled = true;
    }

对
不
删除
另一个按钮
私有无效按钮\u单击(对象发送者,路由目标e)
{
msg.Visibility=System.Windows.Visibility.Visible;
main.IsEnabled=false;
}
私有无效按钮\u单击\u 1(对象发送者,路由目标)
{
msg.Visibility=System.Windows.Visibility.Hidden;
main.IsEnabled=true;
}