請注意下圖中灰色面板中文本下面的1px高亮區。 WPF/Silverlight如何實現這一點?WPF/Silverlight文本效果
Valid XHTML http://www.iconpaper.org/preview/10012101b.jpg。
請注意下圖中灰色面板中文本下面的1px高亮區。 WPF/Silverlight如何實現這一點?WPF/Silverlight文本效果
Valid XHTML http://www.iconpaper.org/preview/10012101b.jpg。
在Silverlight 3中,它被稱爲DropShadow效果。
例如,
<Border Height="300" Width="300" Background="Gray">
<Border.Effect>
<DropShadowEffect Opacity="0.34" ShadowDepth="9" Direction="542" BlurRadius="9"/>
</Border.Effect>
</Border>
我偶然發現了這一點的同時,試圖找出如何做這自己。
對我來說,我沒有控制的原始應用程序(Visual Studio的,順便說一句),當我施加任何額外的WPF元素的結果更是離奇的「輝光影子」是相當從文本中刪除。我永遠不知道如何使它工作,所以我寫了一個專門爲此的ShaderEffect。
您可以下載該項目from its repo。
要使用它,直接應用效果的文本元素(標籤,文本框等):
<Label Content="My Label Content">
<Label.Effect>
<effects:ChiseledTextEffect
ShadowIntensity="1" GlowIntensity="1" Size="0.5" MixDivisor="3" />
</Label.Effect>
</Label>
當然,包括:
xmlns:effects="clr-namespace:Diagonactic.WPF.Effects;assembly=Diagonactic.WPF"
...在XAML中的適當位置並引用該項目。
我已經包括的參數實際上是默認值,所以你可以把它們趕走,除非你需要調整它。
我的目標是用於阱進行鑿(或者如果尺寸被設定爲負數斜角),爲HLSL/WPF ShaderEffect實現。它是PixelShader 2.0,所以它應該適用於Silverlight,儘管我沒有親自測試它。
完整的文檔是here和有它看起來如何配置的非默認微妙的一點會給你一個截圖,但這裏的簡略版:
尺寸 - 像素尺寸爲閃爍/陰影(0.5會產生下面有一個可見的光暈;上面的陰影非常微妙,並且會在樣本中的黑暗文本中隱藏)。使用負數來獲得斜角。
發光/陰影強度 - 增加/減少效果。同時增加兩者會使文本保持其原始顏色,增加一個或另一個會影響渲染文本的顏色和效果的強度。
MixDivisor - 將文本和效果混合到背景中。 3.0是一個非常微妙的混合,2.0是沒有。如果文本位於圖像頂部或不一致的背景上,但文本與背景的對比度較低,則將數字增加到3.0以上會很有用。這個用例的強度和除數一起工作。
你有權訪問產生這些內容的來源嗎?它是什麼軟件? – ChrisF 2010-02-21 18:18:57
不,我剛剛在網上看到了這個圖片,並且知道這個效果在Mac上有很多用處。 – Burt 2010-02-21 18:45:50