如何在代码中设置ContentControl的Template属性

本文关键字:ContentControl Template 属性 设置 代码 | 更新日期: 2023-09-27 18:17:19

我在XAML中定义了一个ContentControl:

<ContentControl Width="100"
    Height="100"
    Canvas.Top="100"
    Canvas.Left="100"
    Template="{StaticResource DesignerItemTemplate}">
    <Ellipse IsHitTestVisible="False" Fill="Blue"/>
</ContentControl>

我想通过代码创建另一个,但我不知道如何设置模板属性。有人能帮帮我吗?

如何在代码中设置ContentControl的Template属性

  1. 在一些资源中编写模板(App, Window, Grid,等等)
<Window>
  <Window.Resources>
    <ControlTemplate x:Key="DesignerItemTemplate"  TargetType="{x:Type ContentControl}">
        <Border BorderBrush="Red" BorderThickness="1">
            <ContentPresenter/>
        </Border>
    </ControlTemplate>
  </Window.Resources>
</Window>
在后面的代码中,找到资源并分配模板:
public MainWindow()
{
    InitializeComponent();
    contentControl1.Template = Resources["DesignerItemTemplate"] as ControlTemplate;
}

尝试使用

Test.Template=Application.Current.FindResource("DesignerItemTemplate")