在UWP StackPanel中添加间距

时间:2016-06-01 13:12:50

标签: c# xaml uwp

我目前正在为我的学校编写一个UWP应用程序,并希望在StackPanel上分离一些项目,但是我不知道如何去做,而googling只返回静态方法而不是动态方法,这意味着窗口调整大小,它搞砸了。我想移动"我的帐户"和"设置"到stackpanel bar的底部

enter image description here

<Page 
  x:Class="G_Student.MainPage" 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  xmlns:local="using:G_Student" 
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  mc:Ignorable="d"> 


   <Grid x:Name="mainGrid" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
       <SplitView x:Name="navBar" 
                  DisplayMode="CompactOverlay" 
                  IsPaneOpen="False" 
                  CompactPaneLength="50" 
                  OpenPaneLength="200"> 
           <SplitView.Pane> 
               <StackPanel Background = "#2b2b2b" >
 Button x:Name="hamburgerButton" 
                           FontFamily="Segoe MDL2 Assets" 
                           Content="&#xE700;" 
                           Width="50" 
                           Height="50" 
                           Background="#0063b1" 
                           Foreground="#ffffff" 
                           Click="hamburgerButton_Click"/> 

                   <StackPanel Orientation = "Horizontal" Background="#15476e"> 
                       <Button x:Name="homeButton" 
                               FontFamily="Segoe MDL2 Assets" 
                               Content="&#xE80F;" 
                               Width="50" 
                               Height="50" 
                               Background="#15476e" 
                               Foreground="#ffffff"/> 
                       <TextBlock Text = "Home"
                                  FontSize="14"  
                                  VerticalAlignment="Center" 
                                  Foreground="#ffffff"/> 
                   </StackPanel> 

                   <StackPanel Orientation = "Horizontal" Background="Transparent"> 
                       <Button x:Name="locateButton" 
                               FontFamily="Segoe MDL2 Assets" 
                               Content="&#xE8F0;" 
                               Width="50" 
                               Height="50" 
                               Background="Transparent" 
                               Foreground="#ffffff"/> 
                       <TextBlock Text = "Class Finder"
                                  FontSize="14"  
                                  VerticalAlignment="Center" 
                                  Foreground="#ffffff"/> 
                   </StackPanel> 


                   <StackPanel Orientation = "Horizontal" Background="Transparent"> 
                       <Button x:Name="classButton" 
                               FontFamily="Segoe MDL2 Assets" 
                               Content="&#xE8F1;" 
                               Width="50" 
                               Height="50" 
                               Background="Transparent" 
                               Foreground="#ffffff"/> 
                       <TextBlock Text = "Class List"
                                  FontSize="14"  
                                  VerticalAlignment="Center" 
                                  Foreground="#ffffff"/> 
                   </StackPanel> 


                   <StackPanel Orientation = "Horizontal" Background="Transparent"> 
                       <Button x:Name="daymapButton" 
                               FontFamily="Segoe MDL2 Assets" 
                               Content="&#xE753;" 
                               Width="50" 
                               Height="50" 
                               Background="Transparent" 
                               Foreground="#ffffff"/> 
                       <TextBlock Text = "DayMap"
                                  FontSize="14"  
                                  VerticalAlignment="Center" 
                                  Foreground="#ffffff"/> 
                   </StackPanel> 


                   <StackPanel Orientation = "Horizontal" Background="Transparent"> 
                       <Button x:Name="plannerButton" 
                               FontFamily="Segoe MDL2 Assets" 
                               Content="&#xE8F5;" 
                               Width="50" 
                               Height="50" 
                               Background="Transparent" 
                               Foreground="#ffffff"/> 
                       <TextBlock Text = "Planner"
                                  FontSize="14"  
                                  VerticalAlignment="Center" 
                                  Foreground="#ffffff"/> 
                   </StackPanel> 


                   <StackPanel Orientation = "Horizontal" Background="Transparent"> 
                       <Button x:Name="accountButton" 
                               FontFamily="Segoe MDL2 Assets" 
                                Content="&#xE77B;" 
                                Width="50" 
                                Height="50" 
                                Background="Transparent" 
                                Foreground="#ffffff"/> 
                        <TextBlock Text = "My Account"
                                   FontSize="14"  
                                   VerticalAlignment="Center" 
                                   Foreground="#ffffff"/> 
                    </StackPanel> 


                    <StackPanel Orientation = "Horizontal" Background="Transparent"> 
                        <Button x:Name="settingsButton" 
                                FontFamily="Segoe MDL2 Assets" 
                                Content="&#xE713;" 
                                Width="50" 
                                Height="50" 
                                Background="Transparent" 
                                Foreground="#ffffff"/> 
                        <TextBlock Text = "Settings"
                                   FontSize="14"  
                                   VerticalAlignment="Center" 
                                   Foreground="#ffffff"/> 
                    </StackPanel> 
                </StackPanel> 
            </SplitView.Pane> 
        </SplitView> 
    </Grid> 
</Page> 

提前非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以使用带有RowDefinitions的Grid,而不是StackPanel。

将帐户和设置包装在一个StackPanel(或另一个包含两个自动行的网格)中,并将其设置为填充可用空间的最后一行。然后对齐底部,使其处于您想要的位置。

示例代码:

<Grid Background="#2b2b2b">
    <Grid.RowDefinitions>
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
        <RowDefinition Height="*" /> // fills available space
    </Grid.RowDefinitions>

    <StackPanel Grid.Row="0" /> // hamburger
    <StackPanel Grid.Row="1" /> // home
    <StackPanel Grid.Row="2" /> // locate
    <StackPanel Grid.Row="3" /> // class
    <StackPanel Grid.Row="4" /> // daymap
    <StackPanel Grid.Row="5" /> // planner
    <StackPanel Grid.Row="6" VerticalAlignment="Bottom"> // wrapper
        <StackPanel /> // account
        <StackPanel /> // settings
    </StackPanel>
</Grid>