2010-05-14 22 views
23

Actualmente estoy creando algo en WPF que tiene un borde que contiene una cuadrícula y otros controles. El problema al que me enfrento es que cada vez que establezco la propiedad Border.Effect en un efecto sombra paralela, cada control contenido en el borde ahora tiene una sombra paralela. ¿Hay alguna manera de establecer la sombra solo en el borde y no en todos los controles contenidos en el borde?WPF drop shadow

Aquí está un ejemplo corto de mi código:

<Grid> 
<Border Margin="68,67,60,67" BorderBrush="Black" BorderThickness="1" CornerRadius="10"> 
    <Border.Effect> 
    <DropShadowEffect/> 
    </Border.Effect> 
    <Rectangle Fill="White" Stroke="Black" Margin="37,89,118,98" /> 
</Border> 
</Grid> 

Respuesta

34

dos opciones:

Opción 1: Agregar un elemento de frontera con el efecto sobre ella como un hermano del árbol de elementos frontera/rectángulo que tener. Algo como esto:

<Grid> 
    <Border Margin="68,67,60,67" 
      BorderBrush="Black" 
      BorderThickness="1" 
      CornerRadius="10"> 
     <Border.Effect> 
      <DropShadowEffect /> 
     </Border.Effect> 
    </Border> 
    <Border Margin="68,67,60,67" 
      BorderBrush="Black" 
      BorderThickness="1" 
      CornerRadius="10"> 

     <Rectangle Fill="White" 
        Stroke="Black" 
        Margin="37,89,118,98"> 
     </Rectangle> 
    </Border> 

</Grid> 

Opción 2: Poner el rectángulo como un hermano del elemento de frontera como esto:

<Grid> 
    <Border Margin="68,67,60,67" 
      BorderBrush="Black" 
      BorderThickness="1" 
      CornerRadius="10"> 
     <Border.Effect> 
      <DropShadowEffect /> 
     </Border.Effect> 
    </Border> 
    <Rectangle Fill="White" 
       Stroke="Black" 
       Margin="37,89,118,98"> 
    </Rectangle> 

</Grid> 

NOTA: Usted tendrá que ajustar el diseño de la segunda solución para que la rectángulo alineado donde lo desee

+2

En caso de que haya agregado algunos otros contenidos (en lugar de rectángulo) dentro del panel Cuadrícula, establezca la propiedad Fondo del panel de cuadrícula para evitar que todo el contenido obtenga sombra paralela. Por ejemplo, ' ...... .... ' – Suriya