2011-12-29 24 views
7

Mam siatkę, dla której chcę ustawić przezroczystość 0.5. Posiadam również granicę dla tej siatki, aby ją zaokrąglić w rogach i chcę, aby ta granica miała również nieprzezroczystość 0.5. Chcę tego wszystkiego bez wpływu na zawartość siatki. udało mi zmieniając krycie siatki bez wpływania na zawartość:WPF Zmień siatkę i siatkę Krycie na granicy bez wpływu na dzieci

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

w powyższym przykładzie przycisku ma pełne krycie, gdy siatka jest 0.5, ale co z granicy? W jaki sposób sprawić, aby obramowanie miało nieprzezroczystość 0,5 bez wpływu na siatkę w niej i zawartość siatki (wszystkie dzieci z marginesami)?

próbowałem tego, ale to nie działa:

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

Odpowiedz

12

Wystarczy ustawić BorderBrush-PROPERTY (nie Background-właściwość) od granicy do:

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

W przykładzie , wyglądałoby to tak:

<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

Dziękuję bardzo muscha :) – Rodniko

0

Dla chcących zmienić granicę/krycie linii siatki w obrębie DataGrid jeden może po prostu setup nieprzezroczysty kolor w zasobach:

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

...

Wtedy następujące zwyczaje będą miały lżejsze granicy komórki pokazaną w DataGrid:

<DataGrid GridLinesVisibility="All" 
      HorizontalGridLinesBrush="{StaticResource StackOverflowGray}" 
      VerticalGridLinesBrush="{StaticResource StackOverflowGray}" 
Powiązane problemy