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


Пример шаблона элемента управления ControlTemplate элемента TreeView

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

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

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

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

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

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

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

Пример шаблона элемента управления ControlTemplate элемента TreeView

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

<Style x:Key="{x:Type TreeView}" TargetType="TreeView">
  <Setter Property="OverridesDefaultStyle" Value="True" />
  <Setter Property="SnapsToDevicePixels" Value="True" />
  <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
  <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="TreeView">
        <Border 
          Name="Border" 
          CornerRadius="1" 
          Background="{StaticResource WindowBackgroundBrush}"
          BorderBrush="{StaticResource SolidBorderBrush}"
          BorderThickness="1" >
          <ScrollViewer 
            Focusable="False"
            CanContentScroll="False"
            Padding="4">
            <ItemsPresenter/>
          </ScrollViewer>
        </Border>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

В предыдущем примере используется один или несколько следующих ресурсов.

<SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF" />


...


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

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

См. также

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

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

Пример объекта "ControlTemplate" элемента управления "TreeViewItem"

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

Примеры ControlTemplate