0

DropShadowBitmapEffect と EmbossBitmapEffect が WPF の TextBlock (textBOX ではない) で機能しない理由を知っている人はいますか? OuterGlow、Blur、および Bevel は正常に機能しているようです。


ヌル背景ブラシでドロップシャドウを取得できるため、透明な背景ブラシは明らかに答えではありません。ドロップシャドウのデフォルトの柔らかさは 50% で、フォントが小さい場合、柔らかさによって影が散らばりすぎます。柔らかさが 39% あたりで急激に低下するようです (この時点で、影は多かれ少なかれ消えます)。それを 0 に設定し、まだ影が見える数字が見つかるまでゆっくりと上に移動してみてください。


さらに別の注意: 柔らかさは間違いなく要因ですが、Xaml では有効な値は実際には 0 から 1 に過ぎないことに注意してください。しかし、Blend では 100 までのパーセンテージとして表示されます。したがって、Xaml で値を 100 に設定すると、それは完全に消散します。


バックグラウンド ブラシ = 透明なソリューションは、エンボス効果にはまだ機能する可能性があります

4

2 に答える 2

2

ビットマップ効果は、レンダリング後のピクセルを見て、それらに対して標準的な画像操作を実行することで機能します。ピクセルの色のみに依存する必要があります。彼らのアルゴリズムは白ではうまく機能しないのだろうか. 色を変更して効果があるかどうかを確認してください。効果がある場合は、ドロップ シャドウを設定した黒いパネルを下に置いてみてください。

編集:質問者は答えを見つけました

「正しい一般的な方向性を教えてくれてありがとう。重要なのはテキストの色や DropShadow ではありませんでした。必要なのは、TextBlock の背景ブラシを null ではなく透明ブラシ (アルファ = 0) にすることです。 "

于 2008-09-21T18:52:25.723 に答える
1

重要な補足: BitmapEffects を実際に使用するべきではありません。.net 3.5 SP1 で導入された ShaderModel エフェクトに基づく Effect プロパティを使用します。これはハードウェア レンダリングを使用し、パフォーマンスが大幅に向上します。

詳しくは

于 2008-09-21T23:53:54.983 に答える