WPF Style Повторное использование - PullRequest
1 голос
/ 27 ноября 2010

Я относительно новичок в сцене WPF, и у меня возникли проблемы с пониманием того, как стили повторно используются в элементах управления.

В моем примере, например, я создаю элемент управления, для которого требуется кнопка Toggle.Я хочу, чтобы этот ToggleButton выглядел как кнопка «развернуть» на TreeViewItem.Как применить стиль кнопки TreeViewItem к моей собственной кнопке?

По результатам моего поиска у меня возникло ощущение, что это невозможно без копирования XAML, но я не могу доказать себе, почему кто-то сделал бы структуру пользовательского интерфейсаэто ограничено.

Заранее спасибо.

1 Ответ

2 голосов
/ 27 ноября 2010

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

Проблема с рестайлингом кнопок заключается в том, что при нажатии они вернутся к своему стандартному нажатому виду, так же, как и при наведении. То, что вы хотите сделать, это изменить ControlTemplate кнопки.

Когда я начинал в WPF, я нашел этот урок быть весьма полезным введением в процесс.

Я бы порекомендовал получить копию ShowMeTheTemplate, чтобы предоставить вам доступ к большинству стандартных шаблонов для элементов управления, поскольку это сэкономит большую часть основной работы и даст представление о том, как работают элементы управления.

Когда вы создали свой шаблон элемента управления (или любой стиль / шаблон в этом отношении), вы можете сохранить его в словаре ресурсов и применить его к элементам управления, ссылаясь на него из соответствующего свойства, используя расширение разметки StaticResource.

Пример:

(в словаре ресурсов, например, App.Resources):

<Style x:Key="myStyle" TargetType="Button">
    <Setter Property="Width" Value="70" />
</Style>

Используется в кнопке:

<Button Style="{StaticResource myStyle}" />

Надеюсь, это поможет вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...