Как раскрасить текстовый блок мышью? - PullRequest
0 голосов
/ 13 июня 2010

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

Ответы [ 2 ]

2 голосов
/ 13 июня 2010

Ваш инстинкт отказа от использования кода для этого события хорош.Позвольте мне обострить его: не меняйте визуальные элементы с выделенного кода, но позвольте своим ViewModels / Code-Behind владеть визуальным состоянием элемента управления.

Решение здесь заключается в том, чтобы инкапсулировать определенные визуальные изменения в пользовательском визуальном состоянии и вызывать это визуальное состояние либо из ViewModel, либо из Blend EventTrigger & GoToStateAction.

Чтобы узнать больше о VisualStateManager, я настоятельно рекомендую вам посмотреть эти 4 видео "Как я" от Стива Уайта @ http://expression.microsoft.com/en-us/cc643423.aspx

Чтобы узнать больше о GoToStateBehavior, см. @ http://blogs.msdn.com/b/expression/archive/2010/02/22/switching-visual-states-easily-using-gotostateaction.aspx

0 голосов
/ 13 июня 2010

Вы можете установить триггер стиля:

<TextBlock Text="Blah">
    <TextBlock.Style>
        <Style TargetType="{x:Type TextBlock}">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="Green" />
                    <Setter Property="Foreground" Value="Black" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
 </TextBlock>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...