0

我在 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>

我将如何将其添加到模板/样式中,以便所有列表框都可以引用一个模板并且都具有相同的外观?

我对如何创建模板感到困惑,

谢谢

4

1 回答 1

0

制作DataTemplate一个可以放置在适当范围集合中的资源:Resources

<UserControl.Resources>
   <DataTemplate x:Key="MyDataTemplate">
       ....
   </DataTemplate>
</UserControl.Resources>

然后,您可以访问您的资源ListBox

<ListBox ItemTemplate="{StaticResource MyDataTemplate}">

或者,您可以添加DataTemplate作为 a 的一部分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:KeyStyle.

每个框架级别的元素都有一个Resources集合,直到应用程序级别,因此选择适当的集合以在适当的范围内定位元素。另请阅读静态和动态资源以及最适合您使用的标记扩展。

于 2013-06-10T12:27:01.397 回答