web-dev-qa-db-fra.com

Effet de lueur extérieure à la bordure

Comment fournir l'effet de lueur extérieure à la bordure?

<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>

J'ai essayé mais ça ne marche pas

26
Ponraja

BitmapEffects ne sont plus pris en charge dans .NET 4.0.

De MSDN

Important Dans .NET Framework 4 ou version ultérieure, la classe BitmapEffect est obsolète. Si vous essayez d'utiliser la classe BitmapEffect, vous obtiendrez une exception obsolète. L'alternative non obsolète à la classe BitmapEffect est la classe Effect. Dans la plupart des situations, la classe Effect est beaucoup plus rapide.

Ce n'est pas la même chose mais vous pouvez essayer avec un DropShadowEffect avec ShadowDepth proche de 0 à la place.

Exemple

<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>

Comparaison entre le BitmapEffects que vous aviez et DropShadowEffect ci-dessus. DropShadowEffect à droite.

enter image description here

59
Fredrik Hedblad