2010-03-25 51 views
3

我在充满圆角的UI中有一个treeview,所以我希望treeview匹配。 xaml中是否有可能将treeview的边框更改为圆角?带圆角的WPF treeview

我想过隐藏边框并将树形视图放在一个圆角矩形内,但是这会丢失房地产并且看起来不太典雅。

任何想法?

回答

4

覆盖树视图的控件模板以更改边框。如果您有Expression Blend,它可以轻松地为您提取默认控件模板,然后您可以简单地在最上面的边框上拍摄适当的半径。

或者,take a look at this MSDN article包含以下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> 

简单地改变外边框有较强的边界半径应该达到你想要什么。

+0

正是我在找的东西。直到现在还不熟悉ControlTemplates。我需要做的唯一调整就是为ScrollViewer添加一点余量,以防止它与圆角混淆。谢谢! – BrettRobi 2010-03-25 17:06:04