代码之家  ›  专栏  ›  技术社区  ›  Willy

避免WPF状态栏在窗口垂直调整大小时增加其高度

  •  0
  • Willy  · 技术社区  · 6 年前

    <Window>
    
      <DockPanel>
         <Grid DockPanel.Dock="Top">
             <!-- Grid stuff here -->
         </Grid>
    
         <StatusBar DockPanel.Dock="Bottom"                   
                    VerticalAlignment="Stretch">
    
                <StatusBar.ItemsPanel>
                    <ItemsPanelTemplate>
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="*" />
                            </Grid.RowDefinitions>
    
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="100" />
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="*" />
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="100" />
                            </Grid.ColumnDefinitions>
                        </Grid>
                    </ItemsPanelTemplate>
                </StatusBar.ItemsPanel>
                <StatusBarItem Grid.Column="0">
                    <TextBlock Text="Item1"/>
                </StatusBarItem>
                <Separator Grid.Column="1" />
                <StatusBarItem Grid.Column="2">
                    <TextBlock />
                </StatusBarItem>
                <Separator Grid.Column="3" />
                <StatusBarItem Grid.Column="4">
                    <TextBlock Text="AnotherItem" />
                </StatusBarItem>
      </DockPanel>
    
    </Window>
    

    问题是当用户垂直调整窗口大小时,状态栏会增加其高度,我希望避免这种情况。我希望状态栏始终保持其高度(相同)。我该怎么做?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Selthien    6 年前

    尝试在状态栏上设置垂直对齐=底部。下面是您的新代码。

    <DockPanel>
        <Grid DockPanel.Dock="Top">
            <!-- Grid stuff here -->
            <ListView></ListView>
        </Grid>
    
        <StatusBar DockPanel.Dock="Bottom"                   
                   VerticalAlignment="Bottom">
    
            <StatusBar.ItemsPanel>
                <ItemsPanelTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
    
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="*" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="100" />
                        </Grid.ColumnDefinitions>
                    </Grid>
                </ItemsPanelTemplate>
            </StatusBar.ItemsPanel>
            <StatusBarItem Grid.Column="0">
                <TextBlock Text="Item1"/>
            </StatusBarItem>
            <Separator Grid.Column="1" />
            <StatusBarItem Grid.Column="2">
                <TextBlock />
            </StatusBarItem>
            <Separator Grid.Column="3" />
            <StatusBarItem Grid.Column="4">
                <TextBlock Text="AnotherItem" />
            </StatusBarItem>
        </StatusBar>
    </DockPanel>