【发布时间】:2012-07-23 16:19:35
【问题描述】:
我尝试在 WPF 中实现一个简单的菜单栏。
这是 XAML:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DockPanel>
<DockPanel Background="Black" VerticalAlignment="Top" LastChildFill="True" DockPanel.Dock="Top" Height="28">
<ToggleButton Content="--" Visibility="Collapsed" />
<StackPanel Orientation="Horizontal">
<Button Content="Add" />
<Button Content="Expand" />
</StackPanel>
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
<TextBox Text="Search" MinWidth="80" Width="200" />
<Button Content="X" Margin="0,1,50,0" />
</StackPanel>
</DockPanel>
</DockPanel>
</Page>
看起来不错,但是当我将页面大小调整为更小的宽度时,最后一个子项(带有搜索文本框的 Stackpanel)隐藏在左侧项的后面。 像这样: http://s9.postimage.org/m0tkrobwd/printscreen.png
如果文本框有足够的空间来实现其最小宽度,那么它会自行调整大小……这可能吗?
【问题讨论】:
-
如果有足够的空间,哪个控件应该伸展,如果没有,哪个控件应该首先消失?
-
看这个:s10.postimage.org/wc86li3rb/concept.png可能在最后阶段可用空间小于80px时,整个搜索面板应该会消失,但如果没有也没关系。但是目前,即使在有足够可用空间的情况下,搜索面板也会流到按钮后面或上方,这很垃圾。
-
我添加了一个可以满足您所有要求的解决方案。