模板在C#的内容控制中不起作用

时间:2018-06-26 02:43:54

标签: c# wpf xaml

这是我的xaml

        <Canvas x:Name="DesignArea">
        <ContentControl
               Name="DesignerItem"
               Width="100"
               Height="100"
               Canvas.Top="100"
               Canvas.Left="100"
               Template="{StaticResource DesignerItemTemplate}">
            <Ellipse Fill="Blue" IsHitTestVisible="False"/>
        </ContentControl>
        <ContentControl Width="130"
                MinWidth="50"
                Height="130"
                MinHeight="50"
                Canvas.Top="150"
                Canvas.Left="150"
                Template="{StaticResource DesignerItemTemplate}">
            <Path Fill="Blue"
        Data="M 0,5 5,0 10,5 5,10 Z"
        Stretch="Fill"
        IsHitTestVisible="False"/>
        </ContentControl>
    </Canvas>

您可以看到内容控件使用模板的所有功能都很好 但是我想通过C#这样

            ContentControl ct = new ContentControl();
        ControlTemplate Temp;
        Temp = (ControlTemplate)this.FindResource("DesignerItemTemplate");
        ct.Template = Temp;
        Ellipse ell = new Ellipse();
        ell.Fill = new SolidColorBrush(Colors.Black);
        ell.Width = 100;
        ell.Height = 100;
        ell.IsHitTestVisible = false;
        ct.Content = ell;
        DesignArea.Children.Add(ct); 

C#中的黑色椭圆确实像xaml形状一样显示了网格模板 但是我无法移动,拖放,调整大小或旋转,就像画布中的内容控件一样,会发生什么?

screenshot

1 个答案:

答案 0 :(得分:1)

哦,我明白了为什么 事实证明,我也需要设置Canvas的属性才能使其工作 Canvas.SetLeft(ct, 300); Canvas.SetTop(ct, 300); ct.Width = 100; ct.Height = 100;