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。

你能帮我解决这个问题吗?

谢谢巴拉特

4

1 回答 1

1

根据 MSDN 文档 -

当 BitmapEffect 应用于布局容器(例如 DockPanel 或 Canvas)时,效果将应用于元素或视觉对象的视觉树,包括其所有子元素。

但是,这里这里描述的一种解决方法是让另一个边界具有相同的位置但没有效果,这将解决问题 -

<Grid>
  <Border Margin="10" BorderBrush="Red" BorderThickness="1">
   <Border.Effect>
    <DropShadowEffect Color="Gray"/>
   </Border.Effect>
  </Border>
  <Border Margin="10">
   <!-- controls -->
  </Border>
 </Grid>
于 2013-03-01T18:47:41.483 回答