WPF Treeview с закругленными углами - PullRequest
3 голосов
/ 25 марта 2010

У меня есть древовидная структура в пользовательском интерфейсе, полном закругленных углов, поэтому я бы хотел, чтобы древовидная структура соответствовала. Возможно ли в xaml изменить границу древовидной структуры, чтобы иметь закругленные углы?

Я думал о том, чтобы спрятать границу и поместить дерево в скругленный прямоугольник, но это теряет недвижимость и выглядит не элегантно.

Есть идеи?

1 Ответ

4 голосов
/ 25 марта 2010

Переопределить шаблон элемента управления для дерева, чтобы изменить границу. Если у вас есть Expression Blend, он может легко извлечь шаблон элемента управления по умолчанию, а затем вы можете просто добавить соответствующий радиус на верхнюю границу.

С другой стороны, взгляните на эту статью MSDN , которая содержит следующий шаблон управления древовидной структурой:

<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>

Просто измените внешнюю границу, чтобы получить более сильный радиус, чтобы достичь того, чего вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...