Избегайте WPF Statusbar для увеличения его высоты при изменении размера окна по вертикали - PullRequest
0 голосов
/ 09 января 2019

У меня есть панель состояния WPF, и я помещаю ее внизу, выполнив следующие действия:

<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>

Проблема в том, что когда пользователь изменяет размеры окна по вертикали, строка состояния увеличивает его высоту, и я хочу этого избежать. Я хочу, чтобы Statusbar всегда сохранял свою высоту (одинаково). Как я могу это сделать?

1 Ответ

0 голосов
/ 09 января 2019

Попробуйте установить VerticalAlignment = Bottom в строке состояния. Вот каков будет ваш новый код.

<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>
...