我想使用FrameworkElementFactory创建一个网格模板,但是如何定义它的RowDefinition?
作为代码
FrameworkElementFactory gridFactory = new FrameworkElementFactory(typeof(Grid));
FrameworkElementFactory RowDefinitionFactory1 = new FrameworkElementFactory(typeof(RowDefinition));
gridFactory.AppendChild(RowDefinitionFactory1);
FrameworkElementFactory RowDefinitionFactory2 = new FrameworkElementFactory(typeof(RowDefinition));
gridFactory.AppendChild(RowDefinitionFactory2);它将抛出异常...
因为<RowDefinitation>应该在<Grid.RowDefinitations>下
发布于 2013-07-04 10:57:42
FrameworkElementFactory已被弃用:
此类是一种以编程方式创建模板的弃用方法,这些模板是FrameworkTemplate的子类,如ControlTemplate或DataTemplate;使用此类创建模板时,并非所有模板功能都可用。以编程方式创建模板的推荐方法是使用XamlReader类的load方法从字符串或内存流加载XAML。
如果需要以编程方式创建模板,建议使用XamlReader.Load或XamlReader.Parse。
var template =
"<Grid>" +
"<Grid.RowDefinitions>" +
"<RowDefinition/>" +
"<RowDefinition/>" +
"</Grid.RowDefinitions>" +
"</Grid>";
var markup = XamlReader.Parse(template);https://stackoverflow.com/questions/17461087
复制相似问题