Шаблон элемента управления по умолчанию MenuItem TopLevelHeader - PullRequest
4 голосов
/ 29 декабря 2010

Где я могу получить шаблон элемента управления MenuItem TopLevelHeader? Ссылка MSDN для элементов меню стилей дает измененный шаблон.

alt text

Мне нужно получить шаблон элемента управления, который содержит всплывающее / контекстное меню по умолчанию.

Ответы [ 2 ]

2 голосов
/ 29 декабря 2010

Мэнни инструменты доступны, которые будут служить цели, как stylesnooper и Показать мне шаблон

но если у вас есть Microsoft Expression Blend , вы можете извлечь шаблон элемента управления по умолчанию с помощью

  1. Перетащите элемент управления на дизайн поверхность
  2. Щелкните правой кнопкой мыши элемент управления и выберите Редактировать шаблон -> Редактировать копию

Когда вы сделаете это, Blend извлечет базовый шаблон из элемента управления и явно объявит его в документе / приложении как ресурс, который вы затем сможете отредактировать по своему вкусу.

Проверьте это для более

http://www.shafqatahmed.com/2009/01/wpf-kid-stuff-extracting-a-control-template.html

1 голос
/ 29 декабря 2010

Мне не удалось получить Blend или обычные инструменты для доступа к этому шаблону элемента управления, но вы можете извлечь его самостоятельно с помощью кода, подобного следующему:

var controlTemplate = (ControlTemplate)FindResource(MenuItem.TopLevelHeaderTemplateKey);
var sb = new StringBuilder();
var xml = XmlWriter.Create(sb, new XmlWriterSettings { Indent = true, NewLineOnAttributes = true });
XamlWriter.Save(controlTemplate, xml);
var xaml = sb.ToString();
Debug.WriteLine(xaml);

Вывод слишком длинный, чтобы включить его здесь.

...