Как я напишу этот триггер? - PullRequest
0 голосов
/ 24 ноября 2010

Я работаю с Wpf. Я использую TabControl, в некоторых конкретных условиях заголовок TabItem содержит символ «*». Мне нужно написать триггер, чтобы при наличии такого содержимого в заголовке фон TabItem менялся. Я не могу найти способ сделать это в xaml. Любая помощь плз.

1 Ответ

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

Если я правильно понимаю ваш вопрос, я думаю, что у вас та же фундаментальная проблема, что и у человека, который задал этот вопрос: Триггер WPF, когда значение свойства превышает определенную сумму , который, к сожалению, просто ссылается надругое сообщение на форуме: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/a8ad8c14-95aa-4ed4-b806-d0ae874a8d26/, но я суммирую его здесь:

Если вы используете DataTrigger вместо обычного триггера и привязываетесь к тексту заголовка, вы можете запустить значение через IValueConverter,который позволит вам преобразовать вашу строку в логическое значение True / False в зависимости от того, имеет ли она звездочку или нет.

<TabItem Header="TabItem">
    <TabItem.Style>
        <Style TargetType="TabItem">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=Header, RelativeSource={RelativeSource Self}, Converter={StaticResource HasAsteriskConverter}}" Value="True">
                    <Setter Property="Foreground" Value="Blue" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TabItem.Style>
<Grid />
</TabItem>

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

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