如何重用Xaml代码模板?

时间:2012-11-17 16:22:56

标签: xaml winrt-xaml controltemplate

说我有这个XAML:

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

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

我将如何做到这一点? 我在想像ASP.NET部分视图。

我不想使用usercontrol,因为我不需要任何代码。

2 个答案:

答案 0 :(得分: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,否则它抱怨设置模板。 我现在可以在任何控件上使用它。

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

答案 1 :(得分:1)

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