在我的主窗口中,我有一个带有许多按钮的工具栏。通过拖动父窗口的大小调整后,使整个工具栏及其所有按钮不再适合窗口的宽度,整个工具栏将消失。
有没有办法可以实现它,以便在调整大小时,当你到达工具栏的宽度时,窗口的内部控件会停止调整大小并保持显示,只是切断窗口调整大小的位置? / p>
代码是
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ToolBar Grid.Row="1" Height="50" Name="tbMainToolbar" VerticalAlignment="Top" MinWidth="900" >
<ToolBar.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="White" Offset="0.0" />
<GradientStop Color="#DCEBFF" Offset="0.25" />
<GradientStop Color="#99CCFF" Offset="0.75" />
<GradientStop Color="#99CCFF" Offset="1.0" />
</LinearGradientBrush>
</ToolBar.Background>
<DockPanel LastChildFill="True">
<Button Name="btnApproved" DockPanel.Dock="Left" Click="btnToolbar_Click" CommandParameter="APPROVED"
Style="{StaticResource ToolbarButtonDisplay}" HelperClasses:ButtonProperties.Image="..\..\Resources\Images\APPROVEU.GIF" Content="Approve">
</Button>
... and so forth for about 20 buttons
答案 0 :(得分:6)
工具栏中有DockPanel
,其中包含所有按钮。
这意味着工具栏将dockpanel(及其所有按钮)视为一个“item”。当它不适合时,它会隐藏工具栏的溢出区域中的批次。
如果完全摆脱DockPanel
,只需将按钮直接放在工具栏下,按钮将在窗口调整大小时一次消失(它们将出现在“溢出区域”中)
如果您不希望他们进入溢出区域,您可以在每个按钮上使用ToolBar.OverflowMode="Never"
附加属性。这将导致工具栏简单地从您在问题中描述的窗口边缘消失。
您也可以首先在Dockpanel上使用此附加属性:
<DockPanel LastChildFill="True" ToolBar.OverflowMode="Never">