2011-08-01 59 views
1

Windows Workflow Foundation 4包含一个WPF属性网格,类似于可用于Winforms的网格。顶部的工具栏有一个CLEAR按钮,而不是Visual Studio显示的X.此控件具有在运行时不为空的ControlTemplate属性。该模板使用工具栏按钮的各种字形。逆向工程ControlTemplate

是否有任何工具或技术可以让我提取此模板?我想检查并修改XAML以重新设置工具栏(主要是更改按钮标签)。

我有编程访问模板对象,但我不知道如何序列化到XAML。

+1

不是答案,但你可以[snoop](http://snoopwpf.codeplex.com/)它。 – Will

回答

1

您是否尝试过简单地使用XamlWriter.Save

例如

var template = control.Template; 
using (var stream = new FileStream("template.xaml", FileMode.Create)) 
{ 
    using (var writer = XmlWriter.Create(stream, new XmlWriterSettings() { Indent = true })) 
    { 
     XamlWriter.Save(template, writer); 
    } 
} 
+0

非常好的尝试。不幸的是它与''不能序列化非公开类型''System.Activities.Presentation.Internal.PropertyEditing.KeyboardEnabledRadioButton'.' –

+0

嗯,太糟糕了:( –

+0

纠正我,如果我错了,但我认为这告诉我,模板是以编程方式创建的,因为它*不能被表达为XAML。我想在某些时候我必须编写一个忽略保护级别的XamlWriter实现,但是抓取模板并不是我经常做的事情:)。 –

0

你有没有试过红门的反射器?当然,如果程序集被混淆了,它可能不会有太大的帮助。