WPF工具栏在调整大小时消失

3
在我的主窗口上有一个工具栏,里面有许多按钮。当父窗口被拖动缩小到整个工具栏及其所有按钮的宽度不再适合窗口时,整个工具栏就会消失。
有没有一种方法可以使得当你调整窗口大小时,当你调整到工具栏的宽度时,窗口内部控件停止调整大小并保持显示,只是在窗口调整到的位置上截断?
代码如下:
<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

首先我会移除MinWidth="900"。 - paparazzo
1个回答

7

您的工具栏中有一个 DockPanel,其中包含所有按钮。

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

如果您彻底摆脱 DockPanel,并直接将按钮放在工具栏下面,当调整窗口大小时,按钮将逐个消失(它们将出现在“溢出区域”)

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

您还可以在首次使用 dockpanel 时在其上使用此附加属性:

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

ToolBar.OverflowMode="Never" 就是我要找的!谢谢!现在我知道如何防止单个工具栏按钮在部分显示时消失(在较小的工具栏尺寸上)了。 - Mar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接