Я смотрю, есть ли способ изменить цвет текстового блока в серебряном свете при наведении мыши. Я попытался триггер, который я прочитал сейчас, не работает. Я хотел бы избежать необходимости делать это в коде, если это вообще возможно.
Ваш инстинкт отказа от использования кода для этого события хорош.Позвольте мне обострить его: не меняйте визуальные элементы с выделенного кода, но позвольте своим 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
Вы можете установить триггер стиля:
<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>