【问题标题】:Define a WPF ControlTemplate at runtime在运行时定义 WPF ControlTemplate
【发布时间】:2009-04-09 04:00:36
【问题描述】:

我想在运行时定义一个 ControlTemplate。这可能吗?我注意到 ControlTemplate 类上的 VisualTree 属性。我还注意到它使用了 FrameworkElementFactory 类。但是,我似乎无法让它工作。

是否可以在运行时创建 ControlTemplate?

【问题讨论】:

    标签: wpf controltemplate


    【解决方案1】:

    是的,您可以使用 FrameworkElementFactory 执行此操作。 Charles Petzold 在“应用程序 = 代码 + 标记”的第 11 章中对此进行了演练,但基本思想是为模板根元素(以及任何子元素的进一步工厂)创建一个 FrameworkElementFactory,创建一个 ControlTemplate,并设置将 ControlTemplate 的 VisualTree 属性添加到 FrameworkElementFactory:

    FrameworkElementFactory borderFactory = new FrameworkElementFactory(typeof(Border));
    // set properties and create children of borderFactory
    ControlTemplate template = new ControlTemplate();
    template.VisualTree = borderFactory;
    
    myButtonInstance.Template = template;
    

    【讨论】:

      【解决方案2】:

      WPF 控件类有一个“模板”属性,您可以在运行时对其进行设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-17
        • 2010-11-10
        相关资源
        最近更新 更多