Создавать пользовательские элементы управления без generic.xaml? - PullRequest
2 голосов
/ 15 декабря 2011

Я схожу с ума от разных ошибок дизайнера XAML в моем приложении PRISM. У меня есть пользовательские элементы управления внутри проекта Infrastructure, и кажется, что все ссылочные проекты имеют проблемы с загрузкой шаблона элемента управления в какой-то момент.

Все работает хорошо во время выполнения, но VS2010 просто не работает со всеми видами ошибок. Я точно знаю, что это связано с тем, что пользовательский элемент управления по какой-то причине неправильно загружает стиль из generic.xaml.

Что я хочу попробовать, так это сбросить generic.xaml все вместе и переключиться на использование именованных шаблонов для своих пользовательских элементов управления. Таким образом, я всегда могу объединять файлы ресурсов, чтобы VS знал, где искать вещи.

  1. Как вы думаете, это жизнеспособное решение?

  2. Как мне заполнить DefaultStyleKey из названного стиля?

Ответы [ 2 ]

0 голосов
/ 13 июля 2013

Без generic.xaml это немного сложно, но с помощью generic.xaml вы можете переключиться на использование именованных шаблонов для своих пользовательских элементов управления. просто добавив следующий код в generic.xaml

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/CPMS.Utility.Controls;component/Controls/MyUc/Style/DBLoginForm.xaml" />

</ResourceDictionary.MergedDictionaries>
0 голосов
/ 16 декабря 2011

Это не жизнеспособное решение: пользовательские элементы управления извлекают информацию из Themes / generic.xaml.Это заполняется во время выполнения.

Если вы создаете составное приложение WPF / Silverlight, вам нужно поместить свой файл generic.xaml в проект WPF и связать его с проектом Silverlight.Это обратное руководство Prism, но требуется из-за ошибки со связанными файлами XAML, которые не находятся на корневом уровне в проектах WPF.

...