当弹出窗口打开时需要禁用Ui

本文关键字:Ui 窗口 | 更新日期: 2023-09-27 18:14:41

在我的Windows Store应用程序(c#)中,我有一个弹出窗口:

<Popup x:Name="LoginPopup" HorizontalAlignment="Center" VerticalAlignment="Center" Width="400" Height="300" IsOpen="{Binding Path=LoginPopupIsOpen}">
            <Popup.ChildTransitions>
                <TransitionCollection>
                    <PopupThemeTransition />
                </TransitionCollection>
            </Popup.ChildTransitions>
</Popup>

和当Popup IsOpen我需要处理事件只在弹出和冻结所有其他UI(包括AppBar)。
这是可能的,而不创建全屏弹出与小的工作区域?

当弹出窗口打开时需要禁用Ui

您可以通过使用两个属性在example .cs文件中完成此操作。在您正在创建的弹出窗口的事件处理程序中,可以包含以下两行

this.IsEnabled = false;
this.ApplicationBar.IsVisible = false;

在你想要关闭弹出窗口的事件处理程序中,你可以将属性恢复到它们的原始值。

this.IsEnabled = true;
this.ApplicationBar.IsVisible = true;

我也面临着类似的问题,并使用这个来处理。

        private void AlertMessage_Opened(object sender, object e)
    {
        UIBlock.Visibility = Windows.UI.Xaml.Visibility.Visible;
    }
    private void AlertMessage_Closed(object sender, object e)
    {
        UIBlock.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
    }

我的弹出名称是AlertMessage,我攻击打开和关闭的事件,并在xaml中放置一个覆盖整个屏幕的边界,并通过这些事件处理可见性。

    <Border Name="UIBlock" Grid.Row="0" Grid.RowSpan="3" Background="#AAFFFFFF" Visibility="Collapsed">
    </Border>

记住要在弹出窗口

之前放置这个边框

我用下面的代码做了一个小的弹出窗口。请试试这个

<Grid Background="Black" Opacity="0.7"  Visibility="Collapsed" x:Name="gdalert" Height="{Binding Height, ElementName=gdfullpage}" Width="{Binding Width, ElementName=gdfullpage}">
            <Popup x:Name="settingpopup"  Width="350" Grid.Row="1"  HorizontalAlignment="Center" VerticalAlignment="Center">
                <Border x:Name="settingbdrmain"  Grid.Row="1"  BorderThickness="0"  Width="350"  CornerRadius="15" >
                    <Grid x:Name="gdsubshape" Margin="0,10,0,10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"></RowDefinition>
                            <RowDefinition Height="Auto"></RowDefinition>
                            <RowDefinition Height="Auto"></RowDefinition>
                            <RowDefinition Height="Auto"></RowDefinition>
                        </Grid.RowDefinitions>
                        <TextBlock Margin="0,0,0,0" Grid.Row="0" x:Name="dddf" FontSize="20" Text="" HorizontalAlignment="Center" TextAlignment="Center"  FontFamily="Arial" FontWeight="Bold" TextWrapping="Wrap" ></TextBlock>
<TextBlock x:Name="txtsettingalert"  Text="" FontSize="20" TextAlignment="Center" Width="300" FontFamily="Arial"   TextWrapping="Wrap"  Foreground="Black" Grid.Row="1" ></TextBlock>
                        <Border x:Name="settingbdr" Width="350" Grid.Row="2" Height="1" Background="Red" BorderBrush="Black" >
                        </Border>
                        <Grid x:Name="btnpanel" Grid.Row="3" Height="60">
                            <Grid.ColumnDefinitions>
               <ColumnDefinition Width="Auto"></ColumnDefinition>
                <ColumnDefinition Width="Auto"></ColumnDefinition>
                 <ColumnDefinition Width="Auto">/ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <Button x:Name="settingok"   Grid.Column="0"  Height="50"  HorizontalAlignment="Left"VerticalAlignment="Center" MinHeight="20"  Width="170" Content="OK" FontSize="24" Foreground="Green" ></Button>
                            <Border  x:Name="settingsubbdr"  Grid.Column="1" BorderBrush="Green" Height="Auto" Width="1" ></Border>
                            <Button x:Name="sl" Grid.Column="2"  Height="50"  HorizontalAlignment="Right" VerticalAlignment="Center" MinHeight="20"  Width="170" Content="Cancel" FontSize="24" Foreground="Green" ></Button>
                        </Grid>
                    </Grid>
                </Border>
            </Popup>

打开使用:- popname。IsOpen = true;gdalert。

关闭popname。IsOpen = false;gdalert。