2012-12-13 20 views
2

在我的主窗体上,我有一个带有多个按钮的工具栏。一旦通过拖动父窗体调整其大小,以使整个工具栏及其所有按钮不再适合窗口的宽度,整个工具栏就会消失。WPF工具栏消失在调整大小

有没有一种方法可以让你调整它的大小,当你到达工具栏的宽度时,窗体的内部控件停止调整大小并保持显示,只需切断窗口大小调整到的位置?

代码是

<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

对于一个我会删除MinWidth =“900”。 – Paparazzi

+0

这是“WPF”还是“winforms”?你已经将它标记为“WPF”,但在你的问题中使用“form”。你是指“控制”而不是“形式”? –

+0

这是XAML代码,所以这必须是WPF。 – WildCrustacean

回答

6

您工具栏,其中包含了所有的按钮有DockPanel

这意味着工具栏将dockpanel(及其所有按钮)视为一个单独的“项目”。当它不适合时,它会将该区域隐藏在工具栏的溢出区域中。

如果你摆脱DockPanel完全的,而只是把按钮直接在工具栏下,该按钮就会消失一个在的时候,窗口大小(它们将出现在“溢出区”)

如果您不希望它们进入溢出区域,则可以使用每个按钮上附加的属性ToolBar.OverflowMode="Never"。这将导致工具栏简单地消失在窗口的边缘,正如您在问题中所描述的那样。

你也可以只使用您DockPanel中这个附加属性在首位:

<DockPanel LastChildFill="True" ToolBar.OverflowMode="Never"> 
+0

'ToolBar.OverflowMode =“从来没有”'是我期待的!谢谢! _现在我知道如何防止单个工具栏按钮在部分显示时消失(小工具栏大小)._ – Mar