WPF <statusbar>未位于窗口底部</statusbar>

时间:2010-02-22 14:29:19

标签: wpf

我们有一个WPF可执行文件,可以创建一个然后动态加载多个程序集。每个程序集代表一个显示在其中一个选项卡中的屏幕(.xaml)。问题是窗口正下方而不是窗口底部。如何强制始终位于底部 窗口? THX!

UserControl    
    DockPanel
        CheckBox 
        StatusBar
    DockPanel
UserControl

5 个答案:

答案 0 :(得分:14)

除了ArsenMkrt关于包含DockPanel.Dock =“Bottom”属性的答案之外,不要忘记DockPanel中的LAST元素将填充该区域,除非您使用height命令明确告诉它(无论DockPanel如何) .Dock属性提供)。

我的建议是这样做:

<UserControl>
   <DockPanel>
     <StatusBar DockPanel.Dock="Bottom" />
     <CheckBox />
   </DockPanel>
</Usercontrol>

答案 1 :(得分:4)

我刚才遇到了同样的问题。感谢Stephen Wrighton的提示最后元素添加DockPanel填充了剩下的区域,我想出了如何设置我的Window 。这有点奇怪,因为我最后添加了Grid,但它位于中间。

<Window>
    <DockPanel>
        <Menu DockPanel.Dock="Top">
            <MenuItem Header="_File">
            </MenuItem>
        </Menu>

        <StatusBar DockPanel.Dock="Bottom">
            <StatusBarItem Content="Filler" />
        </StatusBar>

        <Grid x:Name="rootGrid">

        </Grid>
    </DockPanel>
</Window>

答案 2 :(得分:1)

你试过吗?

<StatusBar DockPanel.Dock="Bottom" ... />

答案 3 :(得分:0)

<Grid>
<Grid.RowDefinitions>
    <RowDefinition Height="*"/>
    <RowDefinition Height="Auto"/>
</Grid.RowDefinitions>

<DockPanel Grid.Row="0"/>

<StackPanel Grid.Row="1">
    <StatusBar>Status Text</StatusBar>
</StackPanel>

答案 4 :(得分:0)

就我而言,添加 DockPanel.Dock="Bottom" 还不够,我还被迫添加了 VerticalAlignment="Bottom"

<StatusBar DockPanel.Dock="Bottom" VerticalAlignment="Bottom" />