[英]The strange internal indent of WPF WrapPanel
我有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,问题仍然存在。
这可能与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/zh-cn/library/aa970772(v=vs.85).aspx中所示) -尽管此示例当然过于复杂出于您的目的,原理是相同的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.