2012-06-20 36 views
19

Làm thế nào để cung cấp hiệu ứng ánh sáng bên ngoài cho đường viền?Hiệu ứng phát sáng bên ngoài đến biên giới

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

Tôi đã cố gắng này, nhưng nó không làm việc

Trả lời

52

BitmapEffects không còn được hỗ trợ trong .NET 4.0.

Từ MSDN

Quan trọng Trong .NET Framework 4 hoặc mới hơn, lớp BitmapEffect là lỗi thời. Nếu bạn cố gắng sử dụng lớp BitmapEffect, bạn sẽ nhận được một ngoại lệ lỗi thời . Cách thay thế không lỗi thời cho lớp BitmapEffect là lớp Effect. Trong hầu hết các trường hợp, lớp Effect là nhanh hơn đáng kể.

Nó không giống nhau nhưng bạn có thể thử với sốvới số ShadowDepth gần bằng 0 để thay thế.

Ví dụ

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

So sánh giữa BitmapEffects bạn có và DropShadowEffect trên. DropShadowEffect ở bên phải.

enter image description here

Các vấn đề liên quan