web-dev-qa-db-ja.com

ボーダーへの外光効果

ボーダーに外側のグロー効果を与える方法は?

<Grid Width="200" Height="200">
    <Grid.Background>
        <RadialGradientBrush Center="0.5,0.5" GradientOrigin="0.5,0.5" RadiusX="0.8" RadiusY="0.8">
            <RadialGradientBrush.GradientStops>
                <GradientStop Offset="0" Color="#FF123B5F" />
                <GradientStop Offset="1" Color="#FF001F31" />
            </RadialGradientBrush.GradientStops>
        </RadialGradientBrush>
    </Grid.Background>
    <Border Width="180" Height="180" Margin="10" Background="Transparent"
            BorderBrush="White" BorderThickness="1">
        <Border.BitmapEffect>
            <OuterGlowBitmapEffect GlowColor="White" GlowSize="3" Opacity="1" />
        </Border.BitmapEffect>
    </Border>
</Grid>

私はこれを試しましたが、うまくいきません

26
Ponraja

BitmapEffectsは.NET 4.0ではサポートされなくなりました。

From [〜#〜] msdn [〜#〜]

重要.NET Framework 4以降では、BitmapEffectクラスは廃止されました。 BitmapEffectクラスを使用しようとすると、廃止された例外が発生します。 BitmapEffectクラスの廃止されていない代替手段はEffectクラスです。ほとんどの場合、Effectクラスは大幅に高速です。

同じことではありませんが、代わりにDropShadowEffectを0に近いShadowDepthで試すことができます。

<Border Width="180" Height="180" Margin="10" Background="Transparent"
        BorderBrush="White" BorderThickness="2" Opacity="1.0">
    <Border.Effect>
        <DropShadowEffect ShadowDepth="0"
                          Color="White"
                          Opacity="1"
                          BlurRadius="5"/>
    </Border.Effect>
</Border>

BitmapEffectsと上記のDropShadowEffectの比較。 DropShadowEffectを右に。

enter image description here

59
Fredrik Hedblad