Стиль Триггеры не работают, когда объект связан с другим объектом - PullRequest
0 голосов
/ 07 февраля 2012

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

<Window.Resources>
    <Style x:Key="boxStyle" TargetType="TextBox">
        <Setter Property="Background" Value="Black"/>
        <Style.Triggers>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Background" Value="Blue"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>

Тогда у меня есть две переключатели, как показано здесь:

<RadioButton Name="optionA" IsChecked="True">Option A</RadioButton>
<RadioButton Name="optionB'>Option B</RadioButton>

И два текстовых поля, как показано здесь:

<TextBox Style="{StaticResource boxStyle}" IsEnabled="{Binding ElementName=optionA, Path=IsChecked}"/>
<TextBox Style="{StaticResource boxStyle}" IsEnabled="{Binding ElementName=optionB, Path=IsChecked}"/>

Привязка работает правильно (когда опция А отмечена, один флажок включен, а другой нет). Однако, когда любое из полей становится отключенным, оно не следует стилю, определенному выше. Фон становится белым независимо от того, на что я меняю цвет стиля.

У кого-нибудь есть идеи? Спасибо.

1 Ответ

0 голосов
/ 07 февраля 2012

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

Тема Aero по умолчанию использует элемент управления ListBoxChrome, но не уверен, что это можно сделать, чтобы соответствующим образом изменить фон, у него нет шаблона, поэтому его может быть сложно изменить. Конечно, вы можете выбросить его и использовать все, что захотите (что вы можете изменить).

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