1

假设我有这个 XAML:

  <StackPanel>
    <TextBlock Text="{Binding Path=TaskName}" />
    <TextBlock Text="{Binding Path=Description}"/>
    <TextBlock Text="{Binding Path=Priority}"/>
  </StackPanel>

我想在多个地方重新使用它。例如作为 ItemsControl 的 DataTemplate,但也作为按钮内容之类的基础。

我该怎么做呢?我在想像 ASP.NET Partial 视图之类的东西。

我不想使用用户控件,因为我不需要任何代码。

4

2 回答 2

2

我设法让它以一种使用风格的方式工作:

<Style x:Key="myStyle" TargetType="Control">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <StackPanel>
                   <TextBlock Text="{Binding Path=TaskName}" />
                   <TextBlock Text="{Binding Path=Description}"/>
                   <TextBlock Text="{Binding Path=Priority}"/>
                </StackPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

它坚持让我使用 TargetType 否则它抱怨设置模板。我现在可以在任何控件上使用它。

如果我想将它本质上用作数据模板,我可以设置数据模板(可能是 ContentControl)中占位符项目的样式来使用它。

于 2012-11-17T17:03:25.703 回答
1

创建一个 StylesResourceDictionary.xaml 并在您的 App.Xaml 中创建一个静态资源。在运行时,样式将被绑定,然后您可以在应用程序的任何位置,跨用户控件或数据模板等引用字典中的任何内容。

于 2012-11-17T16:36:19.233 回答