我是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以及它自己的自定义样式属性。
你能帮帮我吗?
由于 巴勒特
答案 0 :(得分:1)
根据MSDN doucment -
将BitmapEffect应用于布局容器时,例如 DockPanel或Canvas,效果应用于可视化树 元素或视觉,包括其所有子元素。
但是,如here和here所述,有一种解决方法可以使另一个边界具有相同的位置但没有效果,这样可以解决问题 -
<Grid>
<Border Margin="10" BorderBrush="Red" BorderThickness="1">
<Border.Effect>
<DropShadowEffect Color="Gray"/>
</Border.Effect>
</Border>
<Border Margin="10">
<!-- controls -->
</Border>
</Grid>