이미지와 같이 TreeView를 만들었는데 Style이 이상한건지
하위 TreeViewItem 을 생성하고 그 item의 또 하위를 만들 시 이미지와 같이 메인에 있는 라인이 최하위의 라인까지 그려지는 현상이 생깁니다…
혹시 어디가 문제인지 알려주실 수 있나요?
사용한 스타일을 올리겠습니다.
<Style x:Key="ToggleButton.Rectangle" TargetType="ToggleButton">
<Setter Property="Focusable" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Grid Width="15"
Height="13"
SnapsToDevicePixels="True">
<Border Width="9"
Height="9"
Background="{TemplateBinding Background}"
CornerRadius="1" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ToggleButton.Ellipse" TargetType="ToggleButton">
<Setter Property="Focusable" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Grid Width="15"
Height="13"
SnapsToDevicePixels="True">
<Ellipse Width="9"
Height="9"
Fill="{TemplateBinding Background}"
Opacity="1" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="TreeView.Main" TargetType="{x:Type TreeViewItem}">
<Setter Property="Foreground" Value="#EAEAEA" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Background" Value="Red" />
<Setter Property="Margin" Value="0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="19" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition MinHeight="20" />
<RowDefinition />
</Grid.RowDefinitions>
<Rectangle Grid.RowSpan="2"
Width="1"
Margin="0,7,1,-5"
Fill="White"
SnapsToDevicePixels="true"
Stroke="#8F8F8F"
StrokeDashArray="0,2"
StrokeDashCap="Square" />
<ToggleButton x:Name="Expander"
Margin="-1,0,0,0"
Background="{TemplateBinding Background}"
ClickMode="Press"
IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}"
Style="{StaticResource ToggleButton.Rectangle}" />
<Border Name="Bd"
Grid.Column="1"
Padding="{TemplateBinding Padding}"
Background="Transparent"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<ContentPresenter x:Name="PART_Header"
HorizontalAlignment="Center"
VerticalAlignment="Center"
ContentSource="Header" />
</Border>
<ItemsPresenter x:Name="ItemsHost"
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="TreeView.Lv2"
BasedOn="{StaticResource TreeView.Main}"
TargetType="{x:Type TreeViewItem}">
<Setter Property="Background" Value="Gray" />
<Setter Property="Foreground" Value="Black" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="19" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition MinHeight="20" />
<RowDefinition />
</Grid.RowDefinitions>
<Rectangle Grid.RowSpan="2"
Width="1"
Margin="0,7,1,9"
Fill="White"
SnapsToDevicePixels="true"
Stroke="#8F8F8F"
StrokeDashArray="0,2"
StrokeDashCap="Square" />
<ToggleButton x:Name="Expander"
Margin="-1,0,0,0"
Background="{TemplateBinding Background}"
ClickMode="Press"
IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}"
Style="{StaticResource ToggleButton.Rectangle}" />
<Border Name="Bd"
Grid.Column="1"
Padding="{TemplateBinding Padding}"
Background="Transparent"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<ContentPresenter x:Name="PART_Header"
HorizontalAlignment="Center"
VerticalAlignment="Center"
ContentSource="Header" />
</Border>
<ItemsPresenter x:Name="ItemsHost"
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="TreeView.Lv3"
BasedOn="{StaticResource TreeView.Main}"
TargetType="{x:Type TreeViewItem}">
<Setter Property="Background" Value="Gray" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="19" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition MinHeight="20" />
<RowDefinition />
</Grid.RowDefinitions>
<Rectangle Grid.RowSpan="2"
Width="1"
Margin="0,7,1,9"
Fill="White"
SnapsToDevicePixels="true"
Stroke="#8F8F8F"
StrokeDashArray="0,2"
StrokeDashCap="Square" />
<Rectangle Height="1"
Margin="-10,0,5,0"
SnapsToDevicePixels="True"
Stroke="#8F8F8F"
StrokeDashArray="0,2"
StrokeDashCap="Square" />
<ToggleButton x:Name="Expander"
Margin="-1,0,0,0"
Background="{TemplateBinding Background}"
ClickMode="Press"
IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}"
Style="{StaticResource ToggleButton.Ellipse}" />
<Border Name="Bd"
Grid.Column="1"
Padding="{TemplateBinding Padding}"
Background="Transparent"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<ContentPresenter x:Name="PART_Header"
HorizontalAlignment="Center"
VerticalAlignment="Center"
ContentSource="Header" />
</Border>
<ItemsPresenter x:Name="ItemsHost"
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>