Вопрос

Я разрабатываю пользовательский элемент управления, полученный из 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>

Может быть, это помогает другим.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top