UWP:ContentDialog的大小和边距

UWP:ContentDialog的大小和边距,uwp,dialog,margin,Uwp,Dialog,Margin,我想要没有按钮/页边距的内容对话框 我在资源字典中使用了下一个代码(请注意所有0): 0 0,0,0,0 0,0,0,0 0,0,0,0 0,0,0,0 如果我在XAML中设置内容对话框的宽度/高度,底部将被切断(如果没有,它将占据整个屏幕高度),如何修复它: 请注意,蓝色边距(对话框的背面是蓝色的),如何删除它 此外,对话框显示在顶部而不是中间 内容是一个具有0填充/边距的网格。在模板中使用MaxWidth和MaxHeight来控制对话框的大小,您还可以在模板中使用滚动查看器和固定高度来创

我想要没有按钮/页边距的内容对话框

我在资源字典中使用了下一个代码(请注意所有0):

0
0,0,0,0
0,0,0,0
0,0,0,0
0,0,0,0
如果我在XAML中设置内容对话框的宽度/高度,底部将被切断(如果没有,它将占据整个屏幕高度),如何修复它:

请注意,蓝色边距(对话框的背面是蓝色的),如何删除它

此外,对话框显示在顶部而不是中间


内容是一个具有0填充/边距的网格。

在模板中使用MaxWidth和MaxHeight来控制对话框的大小,您还可以在模板中使用
滚动查看器和固定
高度来创建一个固定高度的内容对话框,该对话框可以滚动其中的内容。
要删除页边距,还可以在此标记中更改模板:

这是我的对话框模板样式:

<Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ContentDialog">
                        <Border x:Name="Container">
                            <Grid x:Name="LayoutRoot">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto" />
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
                                <Border x:Name="BackgroundElement"
                Background="{TemplateBinding Background}"
                FlowDirection="{TemplateBinding FlowDirection}"
                BorderThickness="0"
                BorderBrush="{ThemeResource SystemControlForegroundAccentBrush}"
                MaxWidth="{TemplateBinding MaxWidth}"
                MaxHeight="{TemplateBinding MaxHeight}"
                MinWidth="{TemplateBinding MinWidth}"
                MinHeight="{TemplateBinding MinHeight}" >
                                    <Grid x:Name="DialogSpace" VerticalAlignment="Stretch">
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="Auto" />
                                            <RowDefinition Height="*" />
                                            <RowDefinition Height="Auto" />
                                        </Grid.RowDefinitions>
                                        <ScrollViewer x:Name="ContentScrollViewer"
                    HorizontalScrollBarVisibility="Disabled"
                    VerticalScrollBarVisibility="Disabled"
                    ZoomMode="Disabled"
                    Margin="{ThemeResource ContentDialogContentScrollViewerMargin}"
                    IsTabStop="False">
                                            <Grid Height="500">
                                                <!--added height: 500 -->
                                                <Grid.RowDefinitions>
                                                    <RowDefinition Height="Auto" />
                                                    <RowDefinition Height="*" />
                                                    <!-- change from Auto to *-->
                                                </Grid.RowDefinitions>
                                                <ContentControl x:Name="Title"
                    Margin="{ThemeResource ContentDialogTitleMargin}"
                    Content="{TemplateBinding Title}"
                    ContentTemplate="{TemplateBinding TitleTemplate}"
                    FontSize="20"
                    FontFamily="XamlAutoFontFamily"
                    FontWeight="Normal"
                    Foreground="{TemplateBinding Foreground}"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"
                    IsTabStop="False"
                    MaxHeight="{ThemeResource ContentDialogTitleMaxHeight}" >
                                                    <ContentControl.Template>
                                                        <ControlTemplate TargetType="ContentControl">
                                                            <ContentPresenter
                          Content="{TemplateBinding Content}"
                          MaxLines="2"
                          TextWrapping="Wrap"
                          ContentTemplate="{TemplateBinding ContentTemplate}"
                          Margin="{TemplateBinding Padding}"
                          ContentTransitions="{TemplateBinding ContentTransitions}"
                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
                                                        </ControlTemplate>
                                                    </ContentControl.Template>
                                                </ContentControl>
                                                <ContentPresenter x:Name="Content"
                    ContentTemplate="{TemplateBinding ContentTemplate}"
                    Content="{TemplateBinding Content}"
                    FontSize="{ThemeResource ControlContentThemeFontSize}"
                    FontFamily="{ThemeResource ContentControlThemeFontFamily}"
                    Margin="0,-17,0,0"
                    Foreground="{TemplateBinding Foreground}"
                    Grid.Row="1"
                    TextWrapping="Wrap"
                    VerticalAlignment="Center" />
                                                <!--added VerticalAlignment="Center"-->
                                            </Grid>
                                        </ScrollViewer>
                                        <Grid x:Name="CommandSpace" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Bottom">
                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition/>
                                                <ColumnDefinition/>
                                            </Grid.ColumnDefinitions>
                                            <Border x:Name="Button1Host"
                  Margin="{ThemeResource ContentDialogButton1HostMargin}"
                  MinWidth="{ThemeResource ContentDialogButtonMinWidth}"
                  MaxWidth="{ThemeResource ContentDialogButtonMaxWidth}"
                  Height="{ThemeResource ContentDialogButtonHeight}"
                  HorizontalAlignment="Stretch" />
                                            <Border x:Name="Button2Host"
                  Margin="{ThemeResource ContentDialogButton2HostMargin}"
                  MinWidth="{ThemeResource ContentDialogButtonMinWidth}"
                  MaxWidth="{ThemeResource ContentDialogButtonMaxWidth}"
                  Height="{ThemeResource ContentDialogButtonHeight}"
                  Grid.Column="1"
                  HorizontalAlignment="Stretch" />
                                        </Grid>
                                    </Grid>
                                </Border>
                            </Grid>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>

基本上,问题是在my Styles.xaml中,我的MinWidth对于ContentDialog样式(ContentDialogMinWidth)来说太大了

因此,系统将对话框内容水平居中(因为水平对齐是居中的),留下一个蓝色的空白空间(因为对话框背景不透明)

垂直对齐是顶部的,这就是为什么对话框出现在顶部。因为MaxHeight(ContentDialogMaxHeight)太小,所以它被切断了。增加它解决了这个问题


除此之外,我还需要删除固定对话框大小(从我的ContentDialog根目录中删除MinWidth、MaxWidth、MinHeight、MaxHeight)。

您希望实现什么效果?可能内容对话框不是合适的控件,请参阅主题。是否设置MaxHeight属性?我希望对话框与对话框内容之间没有边距。也可以设置固定的宽度和高度,但这会剪辑对话框的内容,如图所示。感谢@ParsaKarami,您让我想到将MinWidth/MaxWidth和MinHeight/MaxHeight设置为固定值。这将使对话框垂直居中。现在如何删除蓝色边距?谢谢,但问题在于固定的对话框大小,以及ContentDialog样式的MinWidth和MaxHeight。
<Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ContentDialog">
                        <Border x:Name="Container">
                            <Grid x:Name="LayoutRoot">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto" />
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
                                <Border x:Name="BackgroundElement"
                Background="{TemplateBinding Background}"
                FlowDirection="{TemplateBinding FlowDirection}"
                BorderThickness="0"
                BorderBrush="{ThemeResource SystemControlForegroundAccentBrush}"
                MaxWidth="{TemplateBinding MaxWidth}"
                MaxHeight="{TemplateBinding MaxHeight}"
                MinWidth="{TemplateBinding MinWidth}"
                MinHeight="{TemplateBinding MinHeight}" >
                                    <Grid x:Name="DialogSpace" VerticalAlignment="Stretch">
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="Auto" />
                                            <RowDefinition Height="*" />
                                            <RowDefinition Height="Auto" />
                                        </Grid.RowDefinitions>
                                        <ScrollViewer x:Name="ContentScrollViewer"
                    HorizontalScrollBarVisibility="Disabled"
                    VerticalScrollBarVisibility="Disabled"
                    ZoomMode="Disabled"
                    Margin="{ThemeResource ContentDialogContentScrollViewerMargin}"
                    IsTabStop="False">
                                            <Grid Height="500">
                                                <!--added height: 500 -->
                                                <Grid.RowDefinitions>
                                                    <RowDefinition Height="Auto" />
                                                    <RowDefinition Height="*" />
                                                    <!-- change from Auto to *-->
                                                </Grid.RowDefinitions>
                                                <ContentControl x:Name="Title"
                    Margin="{ThemeResource ContentDialogTitleMargin}"
                    Content="{TemplateBinding Title}"
                    ContentTemplate="{TemplateBinding TitleTemplate}"
                    FontSize="20"
                    FontFamily="XamlAutoFontFamily"
                    FontWeight="Normal"
                    Foreground="{TemplateBinding Foreground}"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"
                    IsTabStop="False"
                    MaxHeight="{ThemeResource ContentDialogTitleMaxHeight}" >
                                                    <ContentControl.Template>
                                                        <ControlTemplate TargetType="ContentControl">
                                                            <ContentPresenter
                          Content="{TemplateBinding Content}"
                          MaxLines="2"
                          TextWrapping="Wrap"
                          ContentTemplate="{TemplateBinding ContentTemplate}"
                          Margin="{TemplateBinding Padding}"
                          ContentTransitions="{TemplateBinding ContentTransitions}"
                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
                                                        </ControlTemplate>
                                                    </ContentControl.Template>
                                                </ContentControl>
                                                <ContentPresenter x:Name="Content"
                    ContentTemplate="{TemplateBinding ContentTemplate}"
                    Content="{TemplateBinding Content}"
                    FontSize="{ThemeResource ControlContentThemeFontSize}"
                    FontFamily="{ThemeResource ContentControlThemeFontFamily}"
                    Margin="0,-17,0,0"
                    Foreground="{TemplateBinding Foreground}"
                    Grid.Row="1"
                    TextWrapping="Wrap"
                    VerticalAlignment="Center" />
                                                <!--added VerticalAlignment="Center"-->
                                            </Grid>
                                        </ScrollViewer>
                                        <Grid x:Name="CommandSpace" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Bottom">
                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition/>
                                                <ColumnDefinition/>
                                            </Grid.ColumnDefinitions>
                                            <Border x:Name="Button1Host"
                  Margin="{ThemeResource ContentDialogButton1HostMargin}"
                  MinWidth="{ThemeResource ContentDialogButtonMinWidth}"
                  MaxWidth="{ThemeResource ContentDialogButtonMaxWidth}"
                  Height="{ThemeResource ContentDialogButtonHeight}"
                  HorizontalAlignment="Stretch" />
                                            <Border x:Name="Button2Host"
                  Margin="{ThemeResource ContentDialogButton2HostMargin}"
                  MinWidth="{ThemeResource ContentDialogButtonMinWidth}"
                  MaxWidth="{ThemeResource ContentDialogButtonMaxWidth}"
                  Height="{ThemeResource ContentDialogButtonHeight}"
                  Grid.Column="1"
                  HorizontalAlignment="Stretch" />
                                        </Grid>
                                    </Grid>
                                </Border>
                            </Grid>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>