2011-12-29 12 views
7

Tengo una cuadrícula que quiero hacer opacidad 0.5. también tengo un borde para esta cuadrícula para redondearlo y quiero que este borde también tenga opacidad 0.5. quiero todo esto sin afectar el contenido de la grilla. i tenido éxito el cambio de la opacidad de la cuadrícula sin afectar el contenido:WPF Cambiar cuadrícula y Opacidad del borde de cuadrícula sin afectar a los niños

 <Grid Grid.Column="0" Grid.Row="0" Margin="10,15,5,5" > 
     <Border BorderThickness="7" CornerRadius="4" > 
      <Grid> 
       <Grid.Background> 
        <SolidColorBrush Color="#73B2F5" Opacity="0.5"/> 
       </Grid.Background> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="30"/> 
        <RowDefinition Height="1*"/> 
       </Grid.RowDefinitions> 
       <Button Grid.Row="1" Grid.Column="0" Width="40" Height="40" Content="Asaf"></Button> 

      </Grid> 
     </Border> 
    </Grid> 

en el ejemplo anterior el botón tiene opacidad completa, mientras que la rejilla es 0,5, pero lo que sobre la frontera? ¿Cómo hago para que el borde tenga opacidad 0.5 sin afectar la cuadrícula dentro de él y el contenido de la cuadrícula (todos los bordes de los niños)?

He intentado esto, pero no funciona:

 <Grid Grid.Column="0" Grid.Row="0" Margin="10,15,5,5" > 
     <Border BorderThickness="7" CornerRadius="4"> 
      <Border.Background> 
       <SolidColorBrush Color="#73B2F5" Opacity="0.5"/> 
      </Border.Background> 
      <Grid> 
       <Grid.Background> 
        <SolidColorBrush Color="#73B2F5" Opacity="0.5"/> 
       </Grid.Background> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="30"/> 
        <RowDefinition Height="1*"/> 
       </Grid.RowDefinitions> 
       <Button Grid.Row="1" Grid.Column="0" Width="40" Height="40" Content="Asaf"></Button> 

      </Grid> 
     </Border> 
    </Grid> 

Respuesta

12

acaba de establecer la BorderBrush-propiedad (no el fondo de la propiedad) de la Frontera a:

<Border.BorderBrush> 
    <SolidColorBrush Color="#000000" Opacity="0.5"/> 
</Border.BorderBrush> 

En su ejemplo , que se vería así:

<Grid Grid.Column="0" Grid.Row="0" Margin="10,15,5,5" > 
    <Border BorderThickness="7" CornerRadius="4"> 
     <Border.BorderBrush> 
      <SolidColorBrush Color="#000000" Opacity="0.5"/> 
     </Border.BorderBrush> 
     <Grid> 
      <Grid.Background> 
       <SolidColorBrush Color="#73B2F5" Opacity="0.5"/> 
      </Grid.Background> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="30"/> 
       <RowDefinition Height="1*"/> 
      </Grid.RowDefinitions> 
      <Button Grid.Row="1" Grid.Column="0" Width="40" Height="40" Content="Asaf"></Button> 

     </Grid> 
    </Border> 
</Grid> 
+0

Muchas gracias musch :) – Rodniko

0

para aquellos que quieran cambiar la frontera/opacidad de las líneas de división dentro de un DataGrid simplemente se puede configurar el color opaco en los recursos:

<Window.Resources> 
    <SolidColorBrush x:Key="StackOverflowGray" Color="LightGray" Opacity=".3" /> 
</Window.Resources> 

...

A continuación, los siguientes usos tendrá un borde más claro celular se muestra en la cuadrícula de datos:

<DataGrid GridLinesVisibility="All" 
      HorizontalGridLinesBrush="{StaticResource StackOverflowGray}" 
      VerticalGridLinesBrush="{StaticResource StackOverflowGray}" 
Cuestiones relacionadas