MenuItem模板中的弹出窗口给出IsOpen =“False”

时间:2012-04-17 15:01:05

标签: wpf popup menuitem controltemplate

我通过以下标准程序检索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的标准版本正在运行呢?有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

我没有检查过它,但也许是因为你在运行时检索模板。数据绑定已经应用于它。

我建议使用Expression Blend在设计时间内访问控件的模板。你将拥有那里定义的所有绑定。只需右键单击控件并找到类似'模板 - &gt;的选项编辑当前'。