C# 如何在鼠标上方为文本块着色?

C# 如何在鼠标上方为文本块着色?,c#,silverlight,silverlight-4.0,C#,Silverlight,Silverlight 4.0,我想看看是否有一种方法可以改变鼠标上方silverlight中文本块的颜色。我试过一个触发器,我现在读到它不起作用。如果可能的话,我希望避免在代码隐藏中进行此操作。您不在该事件中使用代码隐藏的本能是一个很好的选择。 不过,请允许我进一步说明:不要更改代码隐藏的视觉效果,而是允许您的ViewModels/code-behind拥有控件的视觉状态 这里的解决方案是将特定的可视更改封装在自定义可视状态中,并从ViewModel或Blend EventTrigger&GoToStateAction调用该

我想看看是否有一种方法可以改变鼠标上方silverlight中文本块的颜色。我试过一个触发器,我现在读到它不起作用。如果可能的话,我希望避免在代码隐藏中进行此操作。

您不在该事件中使用代码隐藏的本能是一个很好的选择。 不过,请允许我进一步说明:不要更改代码隐藏的视觉效果,而是允许您的ViewModels/code-behind拥有控件的视觉状态

这里的解决方案是将特定的可视更改封装在自定义可视状态中,并从ViewModel或Blend EventTrigger&GoToStateAction调用该可视状态

要了解有关VisualStateManager的更多信息,我强烈建议您观看Steve White@


要了解有关GoToStateTebehavior的更多信息,请参见@

,您可以设置样式触发器:

<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>

Legend,我今晚会看看这些!