ContentDialog Windows 10 Mobile XAML — полноэкранный — заполнение

Я поместил ContentDialog в свой проект для использования во всплывающем окне входа в Windows 10. Когда я запускаю этот проект на мобильном устройстве, ContentDialog не отображается в полноэкранном режиме и имеет минимальное отступы вокруг этого элемента. На клавиатуре видно (например, в текстовом поле элемента фокуса ) существует поле между клавиатурой и диалоговым окном содержимого

Есть ли какое-нибудь решение, как это сделать в полноэкранном режиме? Я установил для свойства «FullSizeDesired» значение true, проблема та же?

Кто-нибудь помогите убрать вот это: - Padding, - Full Screen

Мой код:

<ContentDialog
    x:Class="ExampleApp.SignInContentDialog"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ExampleApp"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Title="SIGN IN">

    <Grid x:Name="GridMobile" VerticalAlignment="Center" HorizontalAlignment="Center">

            <Button x:Name="MakeOff" 
            Height="32" BorderThickness="1" 
            HorizontalAlignment="Center"
            Foreground="Red" Background="Black"
            Style="{StaticResource ButtonStyle}"
            Margin="0">

            <HyperlinkButton x:Name="btnRegister"
            Height="32" BorderThickness="1" 
            HorizontalAlignment="Center"
            Foreground="Red" Background="Black"
            Margin="0"
            NavigateUri="www.google.pt"
            Style="{StaticResource HyperLinkButtonStyleMobile}"
            Content="Register">
                <HyperlinkButton.ContentTemplate>
                    <DataTemplate>
                    <TextBlock Text="{Binding}" />
                    </DataTemplate>
                </HyperlinkButton.ContentTemplate>
            </HyperlinkButton>
    </Grid>

Поле/пространство в кнопке страницы зарезервировано для «PrimaryButton» и «SecondaryButton», я думаю, но мне нужно больше кнопок, и это поле/пространство не подходит для меня. Я хочу удалить это.

Спасибо.


person fipcurren88    schedule 16.09.2015    source источник
comment
Можете ли вы показать свой собственный ContentDialog xaml?   -  person Justin XL    schedule 16.09.2015
comment
Извините, но мне нельзя размещать здесь изображения. Можете ли вы дать свой идентификатор Skype или другой, чтобы связаться с вами по этому поводу? Я редактирую этот пост прямо сейчас! Спасибо   -  person fipcurren88    schedule 16.09.2015
comment
Ну, почему вы не можете разместить свой код здесь?   -  person Justin XL    schedule 16.09.2015
comment
Выкладываю сейчас! Пожалуйста, проверьте это!   -  person fipcurren88    schedule 16.09.2015


Ответы (1)


Причина, по которой вы видите промежутки между ними, заключается не в каких-либо конкретных значениях Padding, а в том, что в стиле ContentDialog по умолчанию высота и ширина установлены на Auto, что означает, что вашему контенту будет предоставлен только тот размер, который ему нужен.

Поэтому растяните содержимое, чтобы оно соответствовало его родительскому элементу, вам просто нужно переопределить стиль по умолчанию, применив собственный стиль по умолчанию для local:SignInContentDialog и поместив его в свой App.xaml.

<Style TargetType="local:SignInContentDialog">
    <Setter Property="Foreground" Value="{ThemeResource SystemControlPageTextBaseHighBrush}" />
    <Setter Property="Background" Value="{ThemeResource SystemControlBackgroundChromeMediumLowBrush}" />
    <Setter Property="HorizontalAlignment" Value="Center" />
    <Setter Property="VerticalAlignment" Value="Top" />
    <Setter Property="IsTabStop" Value="False" />
    <Setter Property="MaxHeight" Value="{ThemeResource ContentDialogMaxHeight}" />
    <Setter Property="MinHeight" Value="{ThemeResource ContentDialogMinHeight}" />
    <Setter Property="MaxWidth" Value="{ThemeResource ContentDialogMaxWidth}" />
    <Setter Property="MinWidth" Value="{ThemeResource ContentDialogMinWidth}" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:SignInContentDialog">
                <Border x:Name="Container">
                    <Grid x:Name="LayoutRoot">                                                     
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                        </Grid.RowDefinitions>

                        <!-- COMMENT OUT THESE FOLLOWING LINES -->

                        <!--<Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                        </Grid.ColumnDefinitions>-->
                        <Border x:Name="BackgroundElement" Background="{TemplateBinding Background}" FlowDirection="{TemplateBinding FlowDirection}" 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 HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Disabled" ZoomMode="Disabled" Margin="{ThemeResource ContentDialogContentScrollViewerMargin}" IsTabStop="False">
                                    <Grid>
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="Auto" />
                                            <RowDefinition Height="Auto" />
                                        </Grid.RowDefinitions>
                                        <ContentControl x:Name="Title" Margin="{ThemeResource ContentDialogTitleMargin}" Content="{TemplateBinding Title}" ContentTemplate="{TemplateBinding TitleTemplate}" FontSize="20" FontFamily="Segoe UI" 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="{ThemeResource ContentDialogContentMargin}" Foreground="{TemplateBinding Foreground}" Grid.Row="1" TextWrapping="Wrap" />
                                    </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>
</Style>
person Justin XL    schedule 16.09.2015
comment
Хорошо, но я копирую этот стиль для App.xaml. Visual Studio показывает ошибку Неизвестный целевой тип «local: SignInContentDialog». Помогите мне в этой проблеме. - person fipcurren88; 16.09.2015
comment
Вам нужно определить пространство имен вверху — xmlns:local="using:YourNamespaceName". - person Justin XL; 16.09.2015
comment
Введите xmlns:local=using: SignInContentDialog? - person fipcurren88; 16.09.2015
comment
О, я пытаюсь, но студия показывает мне ошибки :( Имя моего приложения: Windows10Programming Мое представление имеет имя ContentDialog: MyDialogSignIn Это мое представление находится в каталоге: Windows10Programming.Client.Views.MyDialogSignIn - person fipcurren88; 16.09.2015
comment
Спасибо. Работайте, но в текстовом поле фокуса, например, contentDialog скользит вниз и создает небольшое поле сверху, и кнопки выглядят (где находятся основные и вторичные кнопки, у них нет кнопок, но есть место для них.) обрезка, когда появляется клавиатура, но у меня есть пространство, необходимое для отображения всех элементов на дисплее Lumia. В этом случае действительно необходимо сделать прокрутку вниз. Этот стиль переопределяет все, но мне нужно это переопределение только в мобильной версии. В настольной версии мой диалог содержимого работает нормально! Я пытаюсь открыть диалог в режиме рабочего стола, и диалог не появляется :( - person fipcurren88; 16.09.2015
comment
Это поведение системы, и, боюсь, нет простого способа исправить это. Но вы можете попробовать всякий раз, когда ваш TextBox сфокусируется (GotFocus), дать всему диалогу отрицательное верхнее поле, выполнив - this.Margin = new Thickness(0,-12,0,0); и установите его обратно на 0 при вызове LostFocus. - person Justin XL; 16.09.2015
comment
И для этой проблемы есть какой-нибудь трюк, чтобы исправить? Этот стиль переопределяет все, но мне нужно это переопределение только в мобильной версии. В настольной версии мой диалог содержимого работает нормально! Я пытаюсь открыть диалоговое окно в режиме рабочего стола, и диалоговое окно не появляется :( Я работаю в UniversalApp - Windows 10, но у меня есть разные коды для разных устройств. Мобильные и настольные. - person fipcurren88; 16.09.2015
comment
Дайте стилю имя. Когда вы создаете диалоговое окно, проверьте, является ли оно мобильным, если да, то назначьте стиль. - person Justin XL; 16.09.2015
comment
Хорошо, Работа. Пространство, отведенное для основной и дополнительной кнопки. Можно удалить? Спасибо - person fipcurren88; 16.09.2015
comment
Я не понимаю, что вы имеете в виду. - person Justin XL; 16.09.2015
comment
При фокусе на любом элементе типа TextBox появляется клавиатура. Когда появится Клавиатура, сделайте большой отступ сверху (может быть, 20-30 пикселей). Это пространство имеет ту же высоту, что и пространство, выделенное для основной и дополнительной кнопок. Если есть это поле, у моего контента есть полоса прокрутки, и мне это не нужно. У меня достаточно места, чтобы показать все содержимое моего диалога, если, конечно, удалить это поле/отступ. Понимать? - person fipcurren88; 16.09.2015
comment
Поместите это в другой вопрос. Это не связано с этим. - person Justin XL; 16.09.2015
comment
В порядке. Я открываю новые вопросы: stackoverflow.com/questions/32615093/ - person fipcurren88; 16.09.2015