首页 文章

当UWP应用运行时,为什么页面顶部和底部会出现空白区域? XAML和“设计”视图显示空白空间

提问于
浏览
1

为什么我的UWP(通用Windows平台)应用程序在我的应用程序的顶部和底部强制增加空间,即使那里什么都没有?

这是它的样子:
extra space

即使在Visual Studio 2013(设计模式)中,您也可以看到蓝色边界框显示页面底部,如下所示:

design mode

外部灰色是它将运行的设备 .

XAML如下所示:

<Page
    x:Class="CYaPass.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:CYaPass"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Height="515" Width="570" Background="LightGray" Loaded="Page_Loaded">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="320"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <StackPanel Grid.Column="0"  Grid.Row="0">
            <TextBlock  FontSize="16" HorizontalAlignment="Center">1. Select a Site/Key</TextBlock>
            <ListView BorderThickness="2" BorderBrush="Aquamarine"  
                      x:Name="SiteListBox" HorizontalAlignment="Stretch" VerticalAlignment="Center" Height="251" 
                      Margin="10,10,0,0"  Width="Auto" SelectionChanged="SiteListBox_SelectionChanged">
                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Setter Property="Padding" Value="5,0,0,0" />
                    </Style>
                </ListView.ItemContainerStyle>
                <ListViewItem Content="Item 2"/>
            </ListView>

            <StackPanel Margin="10,0,0,0" Orientation="Horizontal" Grid.Column="0">
                <Button x:Name="DeleteSiteButton" Content="Delete Site" 
                        HorizontalAlignment="Right" Margin="0,0,0,0" VerticalAlignment="Top" Click="DeleteSiteButton_Click"/>
                <Button x:Name="AddSiteButton" Content="Add Site" HorizontalAlignment="Right"
                    Margin="10,0,0,0" VerticalAlignment="Top" Click="AddSiteButton_Click"/>
            </StackPanel>
        </StackPanel>
        <TextBox x:Name="passwordTextBox" HorizontalAlignment="Left" Margin="7,150,0,0" Grid.Row="1" Grid.ColumnSpan="2"
                 TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="560"/>
        <StackPanel HorizontalAlignment="Left" Height="128" Margin="10,0,0,0" Grid.Column="0" Grid.Row="1"
                    VerticalAlignment="Top" Width="285">
            <Grid Margin="0,0,-11,0">
                <Grid.RowDefinitions>
                    <RowDefinition Height="40" ></RowDefinition>
                    <RowDefinition Height="40" ></RowDefinition>
                    <RowDefinition Height="40" ></RowDefinition>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="180"/>
                    <ColumnDefinition Width="Auto"/>
                </Grid.ColumnDefinitions>
                <CheckBox x:Name="addUppercaseCheckbox"  Grid.Row="0" Grid.Column="0" Content="Add Uppercase" HorizontalAlignment="Stretch" VerticalAlignment="Center" Width="254" Click="addUppercaseCheckbox_Click" Margin="7,0,3,0"/>
                <CheckBox x:Name="addSpecialCharscheckBox" Grid.Row="1" Grid.Column="0" Content="Add Special Chars" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="7,0,3,0"/>
                <TextBox x:Name="specialCharsTextBox" Grid.Column="1" Grid.Row="1" Margin="7,0,3,0" VerticalAlignment="Center" HorizontalAlignment="Stretch" Grid.RowSpan="1" TextWrapping="NoWrap" Text="#"/>
                <CheckBox x:Name="setMaxLengthCheckBox" Grid.Row="2" Grid.Column="0" Content="Set Max Length" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="7,0,3,0"/>
                <local:NumericUpDown Grid.Column="1" HorizontalAlignment="Left" Margin="7,0,3,0" Grid.Row="2" VerticalAlignment="Center" Width="64"/>
            </Grid>
        </StackPanel>
        <StackPanel Grid.Column="1" Grid.Row="0">
            <TextBlock Grid.Column="1" Grid.Row="0" FontSize="16" HorizontalAlignment="Center">2. Draw a pattern</TextBlock>
            <Canvas HorizontalAlignment="Center" x:Name="MainCanvas" 
                    Height="252" Width="252" Margin="7,10,0,0" VerticalAlignment="Top" Background="AliceBlue" Tapped="MainCanvas_Tapped" PointerMoved="MainCanvas_PointerMoved"/>
            <Button x:Name="ClearGridButton" Content="Clear"
                    Margin="50,0,10,0" VerticalAlignment="Center" Click="ClearGridButton_Click" HorizontalAlignment="Right"/>
        </StackPanel>

    </Grid>
</Page>

您可以看到页面的宽度比高度宽,但当应用程序在桌面或模拟器设备(如7“打击垫)上运行时,额外的空间会被推入顶部和底部 .

UWP Forced Minimum?

这是由于某些最小尺寸或UWP强加于应用程序的东西吗?

Cannot Resize Smaller When Running

即使我在应用程序运行时 grab 表单的底部或顶部边框,我也不能让它变小 .

1 回答

  • 4

    默认内容对齐设置为 Center ,因为您设置了页面的 HeightWidth ,因此您的页面将放置在中心并且不会填满整个屏幕 .

    一种可能的解决方案是将这段代码添加到 Page xaml属性: VerticalAlignment="Top" .

    要将 HorizontalAlignment 设置为左侧,请添加: HorizontalAlignment="Left" .

    还有一个建议:如果您不需要在屏幕上显示多个xaml页面,请将Page HeightWidth 保留为默认值 .

相关问题