Я использую хорошо известную технику стилизации списка, чтобы выглядеть как группа переключателей. Стиль представляет BulletDecorator для каждого элемента в списке. Для этого мне нужно ссылаться на конкретную сборку темы, такую как PresentationFramework.Aero.dll, а затем явно использовать ее в моем стиле.Возможно ли создать BulletDecorator с использованием текущей темы?
xmlns:theme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
<BulletDecorator.Bullet>
<theme:BulletChrome
Background="{TemplateBinding Control.Background}"
BorderBrush="{TemplateBinding Control.BorderBrush}"
IsRound="True"
RenderMouseOver="{TemplateBinding UIElement.IsMouseOver}"
IsChecked="{TemplateBinding ListBoxItem.IsSelected}" />
</BulletDecorator.Bullet>
Есть ли способ, чтобы создать BulletDecorator, который стилизованный с использованием текущей или по умолчанию темы, так что мне не нужно ссылаться на явную тему?
Спасибо, что исправляет мою конкретную проблему - мне больше не нужно ссылаться на конкретную тему. Кроме того, поскольку элементы эффективно сгруппированы по списку, GroupName не требуется, поэтому, насколько я могу судить, нет никаких проблем, но я устанавливаю GroupName = "{x: Null}" для обеспечения безопасности в любом случае. Я полагаю, что более общий вопрос: «Если мне нужно явно использовать хром в элементе управления, мне нужно ссылаться на тему?» нужен отдельный вопрос. – Phil
@Phil, GroupName * требуется *, потому что RadioButtons не находятся непосредственно в одной панели. Я знаю, потому что я попробовал, прежде чем отправил свой ответ;). –
Извините, но я собираюсь не принимать этот ответ (надеюсь, временно). При использовании RadioButton вместо BulletDecorator выбранная привязка элемента одобрена при использовании клавиатуры, но не работает при использовании мыши. – Phil