我正在开发一个从System.Windows.Controls.ContentControl派生的自定义控件。在控件默认模板(themes \ generic.xaml)中,我使用包装实际内容的Border元素。
我的自定义控件是否已实现边距和填充(即根据自定义控件上的填充设置缩小边框)或者我是否可以决定自己,应用边距和填充(即设置边距和填充)边界元素上的属性为{TemplateBinding Margin}
等。
提前致谢!
答案 0 :(得分:9)
实施保证金我相信在Framework元素中一路下来。但Padding不是。 ContentControl具有“PaddingProperty”,但默认情况下它不执行任何操作。基本上,您将Content的MarginProperty绑定到内容控件的Padding属性。
答案 1 :(得分:1)
我通过为ContentControl定义样式并将Padding绑定到模板中定义的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>
也许这有助于其他人。