2012-06-20 144 views
19

如何向边界提供外发光效果?边界外发光效果

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

我都试过,但它不工作

回答

52

BitmapEffects不再支持.NET 4.0。

MSDN

重要在.NET Framework 4或更高版本,的BitmapEffect类 过时。如果您尝试使用BitmapEffect类,则会收到 过期的异常。 BitmapEffect 类的非过时替代是Effect类。在大多数情况下,效果等级为 明显更快。

这是不一样的事情,但你可以尝试用DropShadowEffectShadowDepth接近0代替。

<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