我正在开发从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>

也许这可以帮助别人。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top