2011-12-29 79 views
7

我有一个网格,我想让不透明度为0.5。 我也有这个网格的边框为了使它圆角,我想这个边框也有不透明度0.5。 我希望所有这些都不影响网格的内容。 我成功改变了电网的不透明度,而不影响内容:WPF在不影响儿童的情况下更改网格和网格边框的不透明度

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

的例子中的按钮上方有完全不透明而电网是0.5,但对于边界? 我如何让边界具有不透明度0.5而不影响网格内部的网格和网格内容(所有边界儿童)?

我想这一点,但它不工作:

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

回答

12

只需设置BorderBrush - 属性(不是背景属性)的边界至:

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

在你的榜样,它看起来像这样:

<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

非常感谢你肌肉:) – Rodniko 2011-12-29 09:35:26

0

对于那些想改变网格线的边界/不透明度的DataGrid可以简单地设置不透明的颜色中的资源:

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

...

那么以下用法将在DataGrid中所示的打火机单元格边框:

<DataGrid GridLinesVisibility="All" 
      HorizontalGridLinesBrush="{StaticResource StackOverflowGray}" 
      VerticalGridLinesBrush="{StaticResource StackOverflowGray}" 
相关问题