2012-04-17 2 views
1

나는 다음과 같은 표준 절차를 통해 MenuItem의의의 ControlTemplate을 검색 = "거짓"ISOPEN을 부여하십시오 :의 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(); 

그리고 궁금해, 난 항상 얻을 :

<Popup IsOpen="False" ... 

작업 에디션 인 경우 :

<Popup IsOpen="{TemplateBinding IsSubmenuOpen}" ... 

는 하드 코딩 된 문 제를 찾을 수 없습니다 반사경 ILSpy를 통해. 그렇다면 왜 MenuItem의 표준 버전이 작동하고 있습니까? 누군가 그것을 설명 할 수 있을까요?

답변

1

나는 그것을 검사하지는 않았지만, 아마도 런타임에 템플릿을 가져 오기 때문에 가능할 것입니다. 데이터 바인딩이 이미 적용되었습니다.

Expression Blend를 사용하여 디자인 타임에 컨트롤 템플릿을 가져 오는 것이 좋습니다. 거기에 정의 된 모든 바인딩을 갖게됩니다. 컨트롤을 마우스 오른쪽 버튼으로 클릭하고 '템플릿 -> 현재 편집'과 같은 옵션을 찾으십시오.