我在WPF ToolbarTray控件中使用了大约10-15个控件,现在问题是当我更改分辨率时,其中存在的控件在最大化窗口的情况下不根据我的需要进行调整。有关更多详细信息,请附上以下截图。
最初出现的工具栏托盘控件:
工具栏托盘需要显示如下(我正在尝试):
任何人都可以告诉我如何自定义或做什么来实现像ToolbarTray这样的第二个图像。感谢任何帮助。
提前致谢,
更新
<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>
答案 0 :(得分:4)
据我所知,开箱即用是不可能的,因为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>
答案 1 :(得分:1)
我找到了我的问题的解决方案,现在我在ToolBar控件中使用Grid并调整Grid的一列(toolbarGrid)的大小来制作我的第二张Image中的控件。
代码:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Stackpanel
Grid.Column ="0">
<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" />
</StackPanel>
<ToolBarTray x:Name ="toolBarTray" Grid.Column ="1" HorizontalAlignment ="Right" IsLocked="True">
<!--First Toolbar for the controls from Print to Zoom Control-->
<ToolBar x:Name ="topToolBar" FocusVisualStyle="{x:Null}">
<Grid x:Name="toolbarGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Button Content="New Hi1"/>
<Button Content="New Hi2"/>
<Button Content="New Hi3"/>
</Grid>
</ToolBar>
</ToolBarTray>
</Grid>
答案 2 :(得分:0)
简单的答案不是在你的应用程序的顶部“行”中绘制灰色背景