【发布时间】:2014-12-17 21:14:12
【问题描述】:
在我的 WPF 窗口中,我有一个状态栏和一个文本框。现在我想要实现的是在我的代码中,我有一个按钮可以折叠并显示状态栏。当我单击按钮时,状态栏会折叠,因此控件将是 collapsed 并且不再显示,因此文本框将填充状态栏的空间。再次按下按钮时,状态栏将为visible,并将向上推文本框。
我只试过这个,但没有用。问题是状态栏会隐藏,但文本框仍会在同一个位置并且不会占用空间。有人请帮助我,将不胜感激。
<StackPanel>
<Grid>
<StatusBar Height="30" VerticalAlignment="Bottom">
<StatusBarItem Content="Last Saved Not Saved"/>
<StatusBarItem HorizontalAlignment="Right">
<StackPanel Orientation="Horizontal">
<StatusBarItem Content="Character 0 Word 0"/>
<StatusBarItem Content="Ln 1, Ch 0"/>
</StackPanel>
</StatusBarItem>
</StatusBar>
<TextBox x:Name="textBox" Height="380" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Margin="0,24,0,0"/>
</Grid>
</StackPanel>
【问题讨论】:
-
您是否尝试过改用
DockPanel?那里面没有Grid。您必须使用DockPanel.Dock将控件设置在正确的位置。另一件事是在DockPanel上使用Height属性而不是TextBox,这样TextBox就会伸展。 HTH -
我必须摆脱网格吗?而是用 DOCKPANEL 替换 GRID 和 STACKPANEL?
-
看起来像这样:
<DockPanel MinHeight="380" LastChildFill="True"><StatusBar DockPanel.Dock="Top" Height="30"/><TextBox DockPanel.Dock="Bottom"/>。这是我的头等大事,所以你可能想稍微调整一下,但你应该明白了。 -
像男人一样甜蜜! @XAMlMAX 看起来它完成了这项工作。
-
如果你愿意,我会回答这个问题并告诉你一个不使用任何转换器的方法?
标签: wpf xaml stackpanel