2010-05-14 10 views
23

Attualmente sto creando qualcosa in WPF con un bordo che contiene una griglia e altri controlli. Il problema che sto affrontando è che ogni volta che imposto la proprietà Border.Effect su un effetto ombra esterna, ogni controllo contenuto nel bordo ora ha un'ombra esterna. C'è un modo per impostare l'ombra solo al confine e non ogni controllo contenuto nel bordo?Ombreggiamento WPF

Ecco un breve esempio del mio codice:

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

risposta

34

Due scelte:

Opzione 1: Aggiungere un elemento di confine con l'effetto su di essa come un fratello dell'elemento albero di confine/rettangolo avere. Qualcosa di simile a questo:

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

Opzione 2: Mettere il rettangolo come un fratello dell'elemento confine in questo modo:

<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: Si dovrà modificare il layout sulla seconda soluzione per rendere la rettangolo allineato dove lo vuoi

+2

In caso tu abbia aggiunto altri contenuti (invece del rettangolo) all'interno del pannello Griglia, imposta la proprietà Sfondo del pannello Grid per evitare che l'intero contenuto diventi drop-shadow. Ad esempio, ' ...... .... ' – Suriya