2016-09-16 19 views
1

爲什麼我的UWP(通用Windows平臺)應用程序在應用程序的頂部和底部強制使用額外的空間,即使沒有任何內容?當UWP應用程序運行時,爲什麼頁面頂部和底部有空白空間? XAML或Design視圖顯示空白區域

這裏是什麼樣子: 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強制最小?

這是由於對某些應用的最小尺寸或東西,UWP力量?

不能調整較小時運行

即使我搶窗體的底部或應用程序運行時,頂部邊界框架,我不能作出任何更小。

+1

我運行你的代碼,只有空間我看到它的底部部分,因爲你的上一個StackPanel沒有覆蓋整個頁面(將其更改爲Grid並給它一個背景顏色以供查看) – thang2410199

+0

@daylight這是因爲你設置了高度和頁面的寬度,所以內容總是在中心... –

+0

@ thang2410199在運行於Win10上的VStudio 2015上的另一臺計算機上,我放入XAML並運行它,並且您是對的,沒有空間。顯示的那個顯示空間在VStudio 2013上以Win8.1 UWP的形式運行。微軟本來應該讓這些東西在各處運行。有明確的差距。改變背景顏色的好主意。我會嘗試。 Thx – raddevus

回答

4

默認的內容,對齊方式設置爲Center因爲你設置你的頁面的HeightWidth,讓你的網頁被放置在中心,而不是填充整個屏幕。

一個可能的解決方案是添加到Page xaml屬性這段代碼: VerticalAlignment="Top"

若要將HorizontalAlignment置於左側,請添加: HorizontalAlignment="Left"

還有一條建議:如果您不需要在屏幕上顯示多個xaml頁面,請將頁面保留爲默認頁面HeightWidth

+2

您的回答讓我接觸到了解決方案。你是對的。最好不要設置頁面的寬度和高度。當我在Win8.1/VStudio 2013上執行此操作時,寬度爲自動設置。然而,無論出於何種原因,身高仍然過長。在Win10/VStudio 2015上,它的大小與預期完全一致。標記爲答案。謝謝(你的)信息。我會更多地研究它,所以我更好地理解。 – raddevus