我在WPF表单上有一个ListBox,具有以下外观:
<ListBox x:Name="myListBox" Width="200" Height="200" Background="White">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name}" FontSize="16" FontStyle="Italic"/>
<Image Source="Images/myImage.png"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我如何将其添加到模板/样式中,以便所有ListBox都可以引用一个模板并且所有模板具有相同的外观?
我对如何创建模板感到困惑,
由于
答案 0 :(得分:0)
制作DataTemplate
个resource,您可以将其置于适当范围的Resources
集合中:
<UserControl.Resources>
<DataTemplate x:Key="MyDataTemplate">
....
</DataTemplate>
</UserControl.Resources>
然后,您可以访问ListBox
中的资源:
<ListBox ItemTemplate="{StaticResource MyDataTemplate}">
或者,您可以将DataTemplate
添加为Style
:
<Style TargetType="{x:Type ListBox}" x:Key="MyStyle">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
...
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<ListBox Style="{StaticResource MyStyle}">
您还可以通过删除ListBox
中的x:Key
来明确定位所有Style
个实例。
每个框架级元素都有一个Resources
集合,直到应用程序级别,因此请选择适当的集合来定位适当范围的元素。另请阅读static and dynamic resources以及最合适的标记扩展名。