我通过以下标准程序检索MenuItem的ControlTemplate:
var resource = FindResource(new ComponentResourceKey(typeof(MenuItem), "TopLevelHeaderTemplateKey"));
var settings = new XmlWriterSettings() { Indent = true };
var sb = new StringBuilder();
var writer = XmlWriter.Create(sb, settings);
XamlWriter.Save(resource, writer);
MyTextBox.Text = sb.ToString();
我想知道,为什么我总是得到ControlTemplate的深度:
<Popup IsOpen="False" ...
当工作版本为:
<Popup IsOpen="{TemplateBinding IsSubmenuOpen}" ...
无法通过Reflector ILSpy找到任何硬编码问题。那么为什么MenuItem的标准版本正在运行呢?有人可以解释一下吗?
答案 0 :(得分:1)
我没有检查过它,但也许是因为你在运行时检索模板。数据绑定已经应用于它。
我建议使用Expression Blend在设计时间内访问控件的模板。你将拥有那里定义的所有绑定。只需右键单击控件并找到类似'模板 - &gt;的选项编辑当前'。