Margin и Padding реализованы ContentControl?
Я разрабатываю пользовательский элемент управления, полученный из System.Windows.Controls.ContentControl. В шаблоне элементов управления по умолчанию (themes\generic.xaml) я использую элемент Border, который оборачивает фактическое содержимое.
Применяет ли мой пользовательский элемент управления поля и отступы (т. Е. Сжимает границу в соответствии с отступом, заданным в пользовательском элементе управления), или я могу / могу сам решить, где применяются поля и отступы (т. Е. Установить свойства поля и отступа для пограничный элемент к {TemplateBinding Margin}
и т.п.
Заранее спасибо!
2 ответа
Маржа реализована, я считаю, полностью в элементе Framework. Однако Паддинг не является. ContentControl имеет "PaddingProperty", но по умолчанию он ничего не делает. По сути, вы привязываете свойство MarginProperty к свойству Padding элемента управления контентом.
Я решил проблему, определив стиль для ContentControl и привязав Padding к Margin 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>
Может быть, это помогает другим.