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

时间:2015-10-13 06:10:04

标签: c# wpf templates contentcontrol

我在XAML中定义了ContentControl,如下所示:

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

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

2 个答案:

答案 0 :(得分:0)

尝试使用

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

答案 1 :(得分:0)

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

      此致