[英]How to color textblock on mouse over?
我正在尋找是否有一種方法可以將鼠標懸停在Silverlight中來更改文本塊的顏色。 我嘗試了一個觸發器,但我現在閱讀它不起作用。 如果可能的話,我想避免在后面的代碼中這樣做。
您的本能是不使用該事件背后的代碼的本能。 不過,請允許我進行改進:不要從代碼隱藏中更改外觀,而要讓ViewModels / Code-Behind擁有控件的可視狀態。
這里的解決方案是將特定的視覺更改封裝在自定義視覺狀態中,然后從ViewModel或Blend EventTrigger&GoToStateAction調用該視覺狀態。
要了解有關VisualStateManager的更多信息,我強烈建議您觀看史蒂夫·懷特(Steve White)的以下4個“我如何做”視頻@ http://expression.microsoft.com/zh-cn/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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.