(VS 2010 사용) WPF를 처음 사용하고 두 이미지를 표시 한 다음 일부 텍스트를 표시하는 TreeViewItem을 만들려고합니다. 이렇게하려면 StackPanel을 사용하고 있습니다. 나는 첫 번째 이미지는 속성을 모델 변경에 따라/숨기기를 보여주고 싶은, 그래서 0으로 폭을 설정하는 트리거를 추가 :StackPanel 항목 숨기기 -> 나머지 항목 위치 조정
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal" Margin="2" SnapsToDevicePixels="True" Width="Auto">
<Image Width="16" Height="16">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Style.Triggers>
<DataTrigger Binding="{Binding LinkType}" Value="Co">
<Setter Property="Source" Value="/Images/Image1.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding LinkType}" Value="Post">
<Setter Property="Width" Value="0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<Image Source="/Images/Image2.png"
Width="15"
Height="15"
SnapsToDevicePixels="True" Margin="3,0"/>
<TextBlock Text="{Binding Name}" Margin="5,0" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
이 실제로 이미지를 숨길 않지만, 빈 갭 - 잎 스택 패널의 나머지 항목은 첫 번째 이미지의 "제거"를 설명하기 위해 왼쪽으로 밀리지 않습니다. 동일한 결과로 Visibility를 트리거하려고했습니다.
StackPanel에서 항목을 추가/제거하거나 표시/숨기기 또는 너비를 변경하는 등의 방법으로 나머지 항목이 위치를 다시 조정할 수 있습니까? 아니면 거기에 stackpanel보다 나은 컨테이너가 무엇입니까?
+1 잘 질문하십시오. – JDB