Сбросить стиль в определенной части Visual Tree в WPF - PullRequest
2 голосов
/ 30 декабря 2011

Я устанавливаю некоторые глобальные стили для TextBox, ComboBox, TextBlock и т. Д. В моем файле App.xaml.Я хочу, чтобы эти стили передавались через визуальное дерево для единообразного внешнего вида, и именно это они и делают.

Однако я использую Ленту в части моего пользовательского интерфейса.Настройки стиля полностью отбрасывают внешний вид ленты.Лента находится на том же уровне, что и многие другие элементы пользовательского интерфейса, поэтому есть способ просто сбросить стиль для ленты и ее визуальных дочерних элементов

1 Ответ

2 голосов
/ 31 декабря 2011

Я не думаю, что вы можете изменить это поведение wpf.

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

Или вы можете попробовать что-то вроде этого:

<Window ...>
    <Window.Resources>
        <Style TargetType="Button">
            <Setter Property="Background" Value="Red" />
        </Style>
    </Window.Resources>

    <DockPanel LastChildFill="True">
        <Button x:Name="button1" Content="button" DockPanel.Dock="Top" />
        <StackPanel>
            <StackPanel.Resources>
                <Style TargetType="Button">
                </Style>
            </StackPanel.Resources>
            <Button x:Name="button2" Content="lala" />
        </StackPanel>
    </DockPanel>
</Window>

Элемент с именем "button2" будет использоваться по умолчанию.

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