簡體   English   中英

如何在鼠標懸停時為文本塊着色?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM