2015-08-17 1 views
0

/редактирование: Windows 10 UWP приложение, которое с использованием новых ThemeResources (так не StaticResources)XAML: Как применить стиль ко всем элементам, даже элементы, которые имеют набор стилей

я хочу сосредоточить все мои TextBlocks , Я знаю, что я должен был бы сделать это в моих Application.Resources:

<Style TargetType="TextBlock"> 
    <Setter Property="HorizontalAlignment" Value="Center"/> 
</Style> 

Однако, это не работает, когда TextBlock имеет набор стилей.

<TextBlock Text="{Binding Summary}" Style="{ThemeResource HeaderTextBlockStyle}"/> 

Я также знаю, как переопределить цвета в ThemeResources, как и выше, но это ThemeResource не имеет HorizontalAlignment набор. Кроме того, я не хочу добавлять дублирующие стили в свои ресурсы, поскольку я использую разные темы.

Что я хочу достичь, это очень просто в CSS: span { text-alignment: center; } ... но я понятия не имею, как это сделать в XAML без большого количества повторяющегося кода. Надеюсь, это очень легко?

Чтобы уточнить мой вопрос: я хочу применить стиль к ALL TextBlocks, TextBlocks со стилем и TextBlock без набора стиля.

ответ

-1

Вы можете использовать BasedOn параметр в Style или удалить HorizontalAlignment свойство в вашем HeaderTextBlockStyle

также проверить, что HorizontalAlignment свойство может быть наследование в HeaderTextBlockStyle от текущего стиля, так вы можете установить его вручную только для этого элемента

+0

HeaderTextBlockStyle - это ThemeResource (новый в приложениях 8.1), и я не могу найти способ переопределить это. BasedOn = {StaticResource ..} или BasedOn = {ThemedResource ..} не работают. – Boland

+0

попробуйте установить значение HorizontalAlignment вручную для текущего управления – Risa

+0

Да, это нормально работает, но я хочу применить его ко всем текстовым блокам, тем, у кого есть стиль, установленный в ThemeResource, и те, у кого нет набора Style. – Boland

Смежные вопросы