2011-04-15 62 views
1

我想在鼠標懸停時對TextBlock應用發光效果。我認爲最簡單的方法是使用DropShadowEffect並更改設置,使其直接位於文本的後面,這很有用。將兩個陰影效果應用於Silverlight中的TextBlock

但是,TextBlock已經有一個DropShadowEffect它,所以當我鼠標懸停的'發光'效果取代了陰影。

我試圖this solution包裹在GridTextBlock和應用輝光到電網的,但似乎級聯,並覆蓋上TextBlock的陰影。

有什麼辦法可以有效地將兩個陰影應用於相同的元素,或者是否有其他方法在TextBlock上實現發光,這與此方法一樣簡單?

+0

你看過這個嗎? :http://stackoverflow.com/questions/2932999/silverlight-4-how-to-apply-multiple-effects-to-an-element – 2011-04-15 11:19:31

+0

@Erno:是的,歡呼!這是我*試圖鏈接到問題的解決方案! :)它現在更新。我認爲這個問題大概有兩種相同類型的影響。 – Town 2011-04-15 11:28:26

+0

我認爲你可以創建一些包含2個陰影的複合效果(陰影本身似乎是一個「複製和移動」效果和一個模糊效果),但我無法解決問題。如果你拆解了陰影,那實際上並沒有實現它。這是所有的屬性。 – BenCr 2011-04-15 13:56:59

回答

3

我最終加入了二次ContentPresenterVisibility="Collapsed"和附加陰影到,具有以下設置這樣做:

<DropShadowEffect Direction="0" BlurRadius="10" 
        ShadowDepth="1" Opacity="0.6" Color="White" /> 

我再發這種可見的MouseOver國家創造光暈效果。

+0

是否需要成爲ContentPresenter?怎麼樣一個更簡單的矩形? – 2011-04-18 11:10:00

+1

@Xin:我會想象一個矩形會給我一個長方形的光暈 - 我將光線添加到作爲Content屬性傳入的文本中。 – Town 2011-04-18 11:14:06

+0

哦對不起,我沒有看到你真的意味着文本的光芒! – 2011-04-18 11:17:32

0

Did you have a look at this?

不同的影響是可能的,但同樣顯然將改寫。 我看到的唯一的其他解決方案是編寫一個包含所需效果的PixelShaderEffect。

+0

據我所知,這將需要我學習HSLS,它不符合這個問題的簡單方法! – Town 2011-04-15 14:30:19

+0

我知道,但我認爲,雖然我的答案是'不',但如果添加一種方法使其成爲可能,那將會很好。 '易'也很主觀。也許你甚至可以找到現成的Pixelshader(http://shazzam-tool.com包含很多示例),添加PixelShaderEffect就像添加效果一樣簡單。 – 2011-04-15 17:09:13

+0

這不是一種批評,我只是想找一種方法在Blend中做到這一點。做一件相當簡單的事似乎很多工作! Shazzam看起來不錯,如果它需要使用像素着色器,我會在下週檢查一下,歡呼:) – Town 2011-04-17 12:31:07