如何在C#中设置控件模板

时间:2012-12-31 16:26:00

标签: c# xaml windows-runtime windows-store-apps

如何在我的.Template

中使用C#代码设置元素的FlipViewItem属性(例如我的StandardStyles.xaml

如果相关,这是模板:

<ControlTemplate x:Key="DocumentFlipViewItemControlTemplate" TargetType="FlipViewItem">
    <Grid Width="160" HorizontalAlignment="Left">
        <MyProject:DocumentTabControl Name="MainDocumentTabControl"/>
    </Grid>
</ControlTemplate>

请注意,这是与How to set Control Template in code?不同的问题 - 该问题会动态创建模板,然后将其分配给控件,我只想设置预定义的模板。

3 个答案:

答案 0 :(得分:3)

    <Style x:Key="DocumentFlipViewItemStyle" TargetType="FlipViewItem" >
            <Setter Property="Template" Value="{StaticResource DocumentFlipViewItemControlTemplate}"/>
    </Style>

答案 1 :(得分:0)

更改此部分:

TargetType="FlipViewItem"

这样的事情:

TargetType="{x:Type FlipViewItem}"

这将在整个应用程序中将样式应用于type。现在需要注意的一点是,您可能需要在类型前面使用名称空间声明。因此,如果它来自标准库之外的其他东西,您可能需要以下内容:

TargetType="{x:Type local:FlipViewItem}"

答案 2 :(得分:0)

我知道这个问题已经过时了,但您可以这样简单地分配:

var template = 
    (ControlTemplate)Application.Current
        .MainWindow // Your WPF window.
        .FindResource("DocumentFlipViewItemControlTemplate");

然后将其分配给FlipViewItem,如下所示:

var flipItem = new FlipViewItem { Template = template };