边框样式递归地应用于所有子元素

时间:2013-03-01 18:31:17

标签: wpf wpf-controls wpf-4.0

我是WPF的新手,需要您帮助解决我的样式问题。

我已将边框样式应用于GRID,如下所示

<Border CornerRadius="5" BorderBrush="Gainsboro" BorderThickness="1,1,0,0" Name="border1" Margin="90,54,20,50" >
                    <Border BorderBrush="Gray" CornerRadius="5" BorderThickness="0,0,1,1" >
                        <Border.Effect>
                            <DropShadowEffect BlurRadius="10" Direction="-50" ShadowDepth="7" />
                        </Border.Effect>
                        <Border.Child>
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto"/>
                                    <RowDefinition Height="356*" />
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="446*" />
                                </Grid.ColumnDefinitions>

                                <TextBox Name="TB1" Style="{StaticResource CustomTextBoxStyle}" Grid.Column="1" Margin="46,79,400,277" Grid.Row="1" />
                                <ComboBox Height="24" Name="comboBox1" Width="110" Grid.Column="1" Margin="304,86,232,276" Grid.Row="1" />

                            </Grid>
                        </Border.Child>


                    </Border>                    
                </Border>

然后我在网格中放置了带有自定义样式的文本框和组合框。

问题是父GRID的边框样式是否应用于子TEXTBOX以及它自己的自定义样式属性。

你能帮帮我吗?

由于 巴勒特

1 个答案:

答案 0 :(得分:1)

根据MSDN doucment -

  

将BitmapEffect应用于布局容器时,例如   DockPanel或Canvas,效果应用于可视化树   元素或视觉,包括其所有子元素。

但是,如herehere所述,有一种解决方法可以使另一个边界具有相同的位置但没有效果,这样可以解决问题 -

<Grid>
  <Border Margin="10" BorderBrush="Red" BorderThickness="1">
   <Border.Effect>
    <DropShadowEffect Color="Gray"/>
   </Border.Effect>
  </Border>
  <Border Margin="10">
   <!-- controls -->
  </Border>
 </Grid>