被边距和填充由ContentControl中实现?
-
19-08-2019 - |
题
我正在开发从System.Windows.Controls.ContentControl派生的自定义控制。在控件的默认模板(主题\ generic.xaml),我使用的包装实际内容的边框元素。
请问我的自定义控制已经实现了margin和padding(即根据上的自定义控制设置填充收缩的边界)或做/我可以决定自己,在这里,进行margin和padding(即设置margin和padding边界元件上性质{TemplateBinding Margin}
等
提前感谢!
解决方案
保证金实现,我相信在框架元素一路下跌。然而填充是不行。 ContentControl中有“PaddingProperty”,但默认情况下它不会做任何事情。基本上你绑定内容到内容控制的Padding属性的MarginProperty。
其他提示
我通过定义一个ContentControl中风格和填充结合在模板中定义的ContentPresenter的保证金解决了这个问题。
<Style TargetType="{x:Type ContentControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContentControl}">
<ContentPresenter Margin="{TemplateBinding Padding}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
也许这可以帮助别人。
不隶属于 StackOverflow