当UWP应用程序运行时,为什么页面顶部和底部有空白空间? XAML或Design视图显示空白区域
为什么我的UWP(通用Windows平台)应用程序在应用程序的顶部和底部强制使用额外的空间,即使没有任何内容?当UWP应用程序运行时,为什么页面顶部和底部有空白空间? XAML或Design视图显示空白区域
即使在Visual Studio 2013(设计模式),你可以看到蓝色边框显示页面的底部如下:
外部灰色是它将运行的设备。
的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强制最小?
这是由于对某些应用的最小尺寸或东西,UWP力量?
不能调整较小时运行
即使我抢窗体的底部或应用程序运行时,顶部边界框架,我不能作出任何更小。
默认的内容,对齐方式设置为Center
因为你设置你的页面的Height
和Width
,让你的网页被放置在中心,而不是填充整个屏幕。
一个可能的解决方案是添加到Page
xaml属性这段代码: VerticalAlignment="Top"
。
若要将HorizontalAlignment
置于左侧,请添加: HorizontalAlignment="Left"
。
还有一条建议:如果您不需要在屏幕上显示多个xaml页面,请将页面保留为默认页面Height
和Width
。
您的回答让我接触到了解决方案。你是对的。最好不要设置页面的宽度和高度。当我在Win8.1/VStudio 2013上执行此操作时,宽度为自动设置。然而,无论出于何种原因,身高仍然过长。在Win10/VStudio 2015上,它的大小与预期完全一致。标记为答案。谢谢(你的)信息。我会更多地研究它,所以我更好地理解。 – raddevus
我运行你的代码,只有空间我看到它的底部部分,因为你的上一个StackPanel没有覆盖整个页面(将其更改为Grid并给它一个背景颜色以供查看) – thang2410199
@daylight这是因为你设置了高度和页面的宽度,所以内容总是在中心... –
@ thang2410199在运行于Win10上的VStudio 2015上的另一台计算机上,我放入XAML并运行它,并且您是对的,没有空间。显示的那个显示空间在VStudio 2013上以Win8.1 UWP的形式运行。微软本来应该让这些东西在各处运行。有明确的差距。改变背景颜色的好主意。我会尝试。 Thx – raddevus