2012-04-17 46 views
1

我檢索菜單項的控件模板通過以下標準程序:彈出的菜單項的模板給ISOPEN =「假」

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}" ... 

無法找到任何硬編碼的ISSU es通過Reflector ILSpy。爲什麼然後標準版本的MenuItem正在工作呢?有人可以解釋嗎?

回答

1

我還沒有檢查過,但可能是因爲你在運行時檢索模板。數據綁定已經應用到它。

我建議在設計時使用Expression Blend來獲取控件的模板。您將擁有在此處定義的所有綁定。只需右鍵點擊控件並找到選項,如「模板 - >編輯當前」。