首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从FrameworkElement获取FrameworkElementFactory

从FrameworkElement获取FrameworkElementFactory
EN

Stack Overflow用户
提问于 2012-10-10 20:45:19
回答 1查看 1.7K关注 0票数 2

我有一个FrameworkElement,比如有孩子的StackPanel,我需要创建一个DataTempltate,它的VisualTree属性是我的FrameworkElement。为此,我需要将我的FrameworkElement转换为等效的FrameworkElementFactory

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-10 21:19:45

您可能可以使用XamlWriterXamlReader类来获取控件中使用的XAML的副本,并使用它生成另一个控件

代码语言:javascript
复制
string panelXaml = XamlWriter.Save(myStackPanel);

StringReader stringReader = new StringReader(panelXaml);
XmlReader xmlReader = XmlReader.Create(stringReader);
StackPanel newStackPanel = (StackPanel)XamlReader.Load(xmlReader);

我认为这只会复制StackPanel,所以您可能也必须以相同的方式复制它的子对象。

还可以根据Remarks section on MSDN for the FrameworkElementFactory

此类是一种以编程方式创建模板的弃用方法,这些模板是FrameworkTemplate的子类,如ControlTemplateDataTemplate;使用此类创建模板时,并非所有模板功能都可用。以编程方式创建模板的推荐方法是使用XamlReader类的Load方法从字符串或内存流加载XAML。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12819670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档