c# – 如何根据wpf toolbartray的可用空间调整宽度

我在WPF ToolbarTray控件中使用了大约10-15个控件,现在问题是当我更改分辨率时,其中存在的控件在最大化窗口的情况下不根据我的需要进行调整.有关更多详细信息,请附上以下截图.

工具栏托盘控件最初出现:

工具栏托盘需要显示如下(我正在尝试):

任何人都可以告诉我如何自定义或做什么来实现第二个图像像ToolbarTray.Any帮助表示赞赏.

提前致谢,

更新:

<ToolBarTray Background="White">
    <ToolBar>

        <Button
        Width="50" Content="hi"/>
        <Button
        Width="100" Content="bye"/>
        <Button
        Content="welcome"/>
        <Button
        Width="20"/>
        <Button Content="Welcome"/>
        <Separator />
        <Button
        ToolBar.OverflowMode="Always" Content="save" />
        <Button
        ToolBar.OverflowMode="Always" Content="open" />
        <Button
        ToolBar.OverflowMode="AsNeeded" Content="bmp" />
    </ToolBar>
    <ToolBar HorizontalAlignment="Right">
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
            <Button Content="New Hi1"/>
            <Button Content="New Hi2"/>
            <Button Content="New Hi3"/>
        </StackPanel>
    </ToolBar>
</ToolBarTray>

解决方法:

据我所知,这是不可能开箱即用的,因为ToolbarTray的布局选项非常有限.

你可以做的是将工具栏包装在DockPanel中进行布局.但是你错过了一些东西,比如通过拖放更改工具栏位置.

  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="50"></RowDefinition>
      <RowDefinition Height="*"></RowDefinition>
    </Grid.RowDefinitions>
      <DockPanel Grid.Row="0" Background="White">
        <ToolBar DockPanel.Dock="Left">
         ....
      </ToolBar>
      <ToolBar DockPanel.Dock="Right" HorizontalAlignment="Right" HorizontalContentAlignment="Stretch">
        ...
      </ToolBar>
    </DockPanel>
上一篇:如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效


下一篇:c# – 引用ControlTemplate内部的控件