UWP: размер ContentDialog и поля - PullRequest
       12

UWP: размер ContentDialog и поля

0 голосов
/ 25 апреля 2018

Мне нужен диалог содержимого без кнопок / полей.

Я использовал следующий код внутри словаря ресурсов (отметьте все 0):

<x:Double x:Key="ContentDialogButtonHeight">0</x:Double>
<Thickness x:Key="ContentDialogButton1HostMargin">0,0,0,0</Thickness>
<Thickness x:Key="ContentDialogButton2HostMargin">0,0,0,0</Thickness>
<Thickness x:Key="ContentDialogContentMargin">0,0,0,0</Thickness>
<Thickness x:Key="ContentDialogContentScrollViewerMargin">0,0,0,0</Thickness>

Если я установил ширину / высоту диалога контента внутриXAML, нижняя часть обрезана (если нет, она займет всю высоту экрана), как это исправить:

enter image description here

Обратите внимание, что синее поле (фон диалогового окна выделен синим цветом), как его удалить?

Кроме того, диалоговое окно отображается сверху, а не по центру.

Содержимое представляет собой сетку с 0 отступами / полем.

Ответы [ 2 ]

0 голосов
/ 15 августа 2018

В основном проблема заключалась в том, что в моем Styles.xaml значение MinWidth было слишком большим для стиля ContentDialog (ContentDialogMinWidth).

Таким образом, система центрирует содержимое диалога горизонтально (так как HorizontalAlignment равно Center), оставляя то, что кажется полем синего цвета (поскольку фон диалога не был прозрачным).

VerticalAlignment был Top, поэтому диалог появлялся сверху. И он был обрезан, потому что MaxHeight (ContentDialogMaxHeight) был слишком мал. Увеличение его решило проблему.

Кроме того, мне нужно было удалить фиксированный размер диалога (удаление MinWidth, MaxWidth, MinHeight, MaxHeight из корня моего ContentDialog).

0 голосов
/ 01 мая 2018

Используйте MaxWidth и MaxHeight в вашем шаблоне для управления размером вашего диалога. Вы также можете использовать ScrollViewer и фиксированный Height внутри вашего шаблона, чтобы создать диалог содержимого с фиксированной высотой, который может прокручивать содержимое внутри него.Для удаления полей вы также можете изменить свой шаблон в этом теге:

<Grid x:Name="DialogSpace">

Это мой стиль шаблона диалога:

<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>
...