调整大小时WPF工具栏消失

时间:2012-12-13 17:02:20

标签: c# wpf toolbar

在我的主窗口中,我有一个带有许多按钮的工具栏。通过拖动父窗口的大小调整后,使整个工具栏及其所有按钮不再适合窗口的宽度,整个工具栏将消失。

有没有办法可以实现它,以便在调整大小时,当你到达工具栏的宽度时,窗口的内部控件会停止调整大小并保持显示,只是切断窗口调整大小的位置? / 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

1 个答案:

答案 0 :(得分:6)

工具栏中有DockPanel,其中包含所有按钮。

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

如果完全摆脱DockPanel,只需将按钮直接放在工具栏下,按钮将在窗口调整大小时一次消失(它们将出现在“溢出区域”中)

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

您也可以首先在Dockpanel上使用此附加属性:

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