我有WPF WrapPanel,里面有一个工具栏。 WrapPanel为红色,工具栏为蓝色。
有人可以解释一下,WrapPanel在顶部,左边等处的缩进来自哪里,以及我如何删除它?
以下是图片的示例代码:
<WrapPanel Orientation="Horizontal" Background="Red">
<ToolBar x:Name="tFirst" Background="Blue" ToolBarTray.IsLocked="True">
<Button ToolTip="New" Content="New" />
<Button ToolTip="Save" Content="Save" />
<Button ToolTip="Delete" Content="Delete" />
</ToolBar>
</WrapPanel>
提前致谢。
更新:问题仅出在工具栏上,我刚刚将WrapPanel更改为DockPanel,问题仍然存在。
答案 0 :(得分:1)
这可能与ToolBar
控件的默认内置控件模板有关。
显然,快速解决方法是将Margin
设置为-2。
ToolBar
内部相当复杂,它由Grid
,Border
,DockPanel
等组成。您可以尝试使用VisualTreeHelper
遍历它。例如:
var dockPanel = VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(tFirst, 0), 1), 0);
检索DockPanel
对象。您可以尝试找到Margin
或Padding
大于0的控件,如果成功,您甚至可以从代码重置它(例如:(dockPanel as DockPanel).Margin = 0;
)
在XAML中,我尝试覆盖ToolBar's
控制模板(如http://msdn.microsoft.com/en-us/library/aa970772(v=vs.85).aspx中所示 - 虽然这个例子当然过于复杂,但原理是相同的)。