(使用VS 2010)我是WPF的新手,正在嘗試創建一個TreeViewItem,顯示2個圖像,然後顯示一些文本。爲此,我使用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>
但這其實隱藏圖像,但留下一個空的GAP-堆棧面板中剩餘的項目不會滑動到左側以解釋第一個映像的「刪除」。我也嘗試以相同的結果觸發可見性。
有沒有一種方法可以在StackPanel中添加/刪除或顯示/隱藏或更改width = 0等項目,以便其餘項目相應地重新調整它們的位置?或者有沒有比堆疊面板更好的容器?
+1非常好的問題,也問。 – JDB