gpt4 book ai didi

c# - 如何在 Windows Phone 8.1 中显示全屏 Modal ContentDialog

转载 作者:可可西里 更新时间:2023-11-01 08:15:30 25 4
gpt4 key购买 nike

当用户尝试登录我的应用程序时,我会显示一个包含一些 TextBlock 和一个 ProgressBar 的 ContentDialog。

我选择 ContentDialog 是因为它是模态的,并且会在应用程序收集所需信息并准备好导航到下一页之前阻止用户。

以下link显示可用于 Windows Phone 8.1(通用应用程序)的内容对话框类。

下面的代码显示了我为显示 ContentDialog 而编写的代码隐藏(我暂时将其放在 OnNavigatedTo 中进行测试,稍后将其移动到适当的通知功能)

//Progress Bar
ProgressBar bar = new ProgressBar();
bar.IsIndeterminate = true;

//Downloading Data text
TextBlock txt = new TextBlock();
txt.Text = "Downloading data...";
txt.FontSize = 17;
txt.Foreground = new SolidColorBrush(Colors.White);
txt.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center;

//This could take a few seconds
TextBlock txt2 = new TextBlock();
txt2.Text = "This could take a few seconds.";
txt2.FontSize = 17;
txt2.Foreground = new SolidColorBrush(Colors.White);
txt2.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center;

//Please do not close the application.
TextBlock txt3 = new TextBlock();
txt3.Text = "Please do not close the application.";
txt3.FontSize = 17;
txt3.Foreground = new SolidColorBrush(Colors.White);
txt3.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center;

StackPanel stk = new StackPanel();
stk.Children.Add(bar);
stk.Children.Add(txt);
stk.Children.Add(txt2);
stk.Children.Add(txt3);


ContentDialog dlg = new ContentDialog();
dlg.Content = stk;
SolidColorBrush color = new SolidColorBrush(Colors.Black);
color.Opacity = 0.7;
dlg.Background = color;
dlg.Margin = new Thickness(0, 250, 0, 0);
dlg.ShowAsync();

这显示为 enter image description here上面你可以看到它只覆盖了部分背景

我希望它显示为 enter image description here

通过制作全屏模态。

我曾尝试更改高度和其他属性,但无法使其正常工作。

如果有人能指出正确的方向,我会很高兴。

最佳答案

我找到了一个消除隐藏代码的解决方案。不确定这是否更像是一种解决方法。但它允许我轻松地使用 Binding 来决定何时显示此模式对话框以及何时隐藏它。

这是我的 XAML

<Grid>
<Grid Visibility="{Binding IsDownloadingData}" Canvas.ZIndex="1" Background="{StaticResource PartiallyTransparentBlackColor}" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ProgressBar Grid.Row="1" IsIndeterminate="True"/>
<TextBlock Grid.Row="2" Text="Downloading Data..." FontSize="17" Foreground="White" HorizontalAlignment="Center"/>
<TextBlock Grid.Row="3" Text="This could take a few seconds." FontSize="17" Foreground="White" HorizontalAlignment="Center"/>
<TextBlock Grid.Row="4" Text="Please do not close the application." FontSize="17" Foreground="White" HorizontalAlignment="Center"/>
</Grid>
<ScrollViewer Canvas.ZIndex="0" VerticalAlignment="Stretch" Margin="0,10,0,10">
<!-- The XAML that should be hidden goes here (In my case LOGIN PAGE XAML) -->
</ScrollViewer>

我使用 Binding 调整具有 Canvas.ZIndex="1"的 Grid 的可见性,并决定何时显示模态窗口。

关于c# - 如何在 Windows Phone 8.1 中显示全屏 Modal ContentDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24372271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com