Поделиться через


Пример метки ControlTemplate

Обновлен: Ноябрь 2007

Элементы управления в Windows Presentation Foundation (WPF) имеют шаблон ControlTemplate, содержащий визуальное дерево этого элемента управления. Разработчик может изменить структуру и внешний вид элемента управления, изменяя шаблон ControlTemplate этого элемента управления. Невозможно заменить только часть визуального дерева элемента управления. Чтобы изменить визуальное дерево элемента управления, следует установить в свойстве Template элемента управления новый и завершенный шаблон ControlTemplate.

В этом разделе показан объект ControlTemplate из WPF элемента управления Label.

В этом разделе содержатся следующие подразделы.

  • Необходимые компоненты
  • Пример метки ControlTemplate
  • Связанные разделы

Необходимые компоненты

Для выполнения примеров из данного раздела необходимо понимание технологии написания приложений WPF. Дополнительные сведения см. в разделе Введение в Windows Presentation Foundation. Необходимо также понимание принципов использования стилей в WPF. Дополнительные сведения см. в разделе Стилизация и использование шаблонов.

Пример метки ControlTemplate

Хотя в этом примере содержатся все элементы, определенные в объекте ControlTemplate объекта Label по умолчанию, конкретные значения следует рассматривать как примеры.

<Style x:Key="{x:Type Label}" TargetType="Label">
  <Setter Property="HorizontalContentAlignment" Value="Left"/>
  <Setter Property="VerticalContentAlignment" Value="Top"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="Label">
        <Border>
          <ContentPresenter 
            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
            VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
            RecognizesAccessKey="True"/>
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="IsEnabled" Value="false">
            <Setter Property="Foreground"
                    Value="{StaticResource DisabledForegroundBrush}"/>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

В предыдущем примере используется следующий ресурс.

<SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />

Полный пример содержится в разделе Пример стилизации с использованием ControlTemplates.

См. также

Основные понятия

Рекомендации по разработке элементов управления с возможностью использования стилей

Другие ресурсы

Примеры ControlTemplate