TargetTypes для пользовательских шаблонов управления? - PullRequest
1 голос
/ 19 августа 2010

Я расширяю элемент управления WPF Calendar и скопировал шаблоны элементов управления для Calendar, CalendarItem, CalendarButton и CalendarDayButton в Generic.xaml моего пользовательского элемента управления.TargetType для шаблона элемента управления Calendar является моим настраиваемым элементом управления, FsCalendar:

<!-- Calendar Control Template -->
<Style TargetType="{x:Type local:FsCalendar}">
...
</Style>

Но как насчет других шаблонов элементов управления?Я оставляю их нацеленными на оригинальный Календарь, как это?

<!-- CalendarDayButton Control Template -->
<Style TargetType="CalendarDayButton">
...
</Style>

Или я нацеливаю его на свой пользовательский элемент управления?Если так, то как бы я это сделал?

Я пытался поместить свое пространство имен (local) в объявление, но это не сработало.Таким образом, в настоящее время TargetType установлен в пространство имен по умолчанию System.Windows.Controls.Primitives.

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 19 августа 2010

Если вы по-прежнему используете те же объекты из оригинала, т.е. не создали новый FsCalendarDayButton, вам просто нужны исходные типы TargetTypes в точности так, как вы их скопировали.

Если вы хотите изменить шаблоныдля них всякий раз, когда они используются в вашем FsCalendar, вы можете либо добавить x: Key к каждому из них, а затем добавить ссылки StaticResource при каждом использовании (может быть непрактичным, если они являются вложенными или автоматически сгенерированными экземплярами) в шаблоне FsCalendar илиоставьте их как неявно набранные с помощью просто TargetType и переместите их в ресурсы вашего стиля или ControlTemplate, чтобы они вытягивались при загрузке этого стиля.

Если вы не изменяете эти элементы управления, тогда вы не будетеВам вообще не нужны копии их стилей - значения по умолчанию будут выбраны, когда вы используете элементы управления, как Button или ComboBox.

...