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