我正在使用ContentDialog来显示各种内容(* 进度条、状态文本 *),我希望使其具有与使用MesasgeDialog相同的默认外观,以便更好地适应环境。是否有MessageDialog的默认布局和样式的XAML代码?或者有人能告诉我使用了什么字体吗?任何适合默认MessageDialog美学的内容都将有所帮助。
^我要在ContentDialog上使用的MessageDialog样式范例。
使用XAML的答案将是理想的。
r7knjye21#
您可以为此方案创建一个自定义的ContentDialog控件,然后更改ContentDialog中内容的样式。ContentDialog的最大宽度有一个默认值,因此需要首先覆盖App.Xaml中的ContentDialogMaxWidth值。就像这样:
ContentDialog
ContentDialogMaxWidth
<Application.Resources> <x:Double x:Key="ContentDialogMaxWidth">2000</x:Double> </Application.Resources>
之后,您可以右键单击项目,选择Add-〉New Item-〉ContentDialog来创建一个自定义的ContentDialog控件。稍微更改样式,使其看起来像MessageDialog。代码如下:
<ContentDialog x:Class="TestContentDialog.MContentDialog" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:TestContentDialog" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Title="Please Wait"> // you could try to change the style to meet your own requirement. <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Width="800" Height="150" > <Grid.RowDefinitions> <RowDefinition Height="48"/> <RowDefinition Height="*"/> <RowDefinition Height="48"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="20"/> <ColumnDefinition /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" Text="Please Wait" FontSize="28"/> <TextBlock Grid.Column="1" Grid.Row="1" FontSize="18" Text="Still checking for updates" /> <Button Grid.Row="2" Grid.Column="1" Width="100" Height="30" Content="Close" Click="Button_Click" Margin="650,0,0,0" /> </Grid>
程式码后置:
public sealed partial class MContentDialog : ContentDialog { public MContentDialog() { this.InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { this.Hide(); } }
在主页上使用:
<Grid> <Button Content="Click" Click="Button_Click"/> <local:MContentDialog x:Name="MContentDialog" CornerRadius="8"/> </Grid> private async void Button_Click(object sender, RoutedEventArgs e) { await MContentDialog.ShowAsync(); }
结果如下所示:
1条答案
按热度按时间r7knjye21#
您可以为此方案创建一个自定义的
ContentDialog
控件,然后更改ContentDialog
中内容的样式。ContentDialog
的最大宽度有一个默认值,因此需要首先覆盖App.Xaml中的ContentDialogMaxWidth
值。就像这样:
之后,您可以右键单击项目,选择Add-〉New Item-〉ContentDialog来创建一个自定义的
ContentDialog
控件。稍微更改样式,使其看起来像MessageDialog。代码如下:
程式码后置:
在主页上使用:
结果如下所示: