我的Application.Resources
中有一种风格:
<Style x:Name="TransparentBackground" TargetType="Border">
<Setter Property="Background" Value="AntiqueWhite" />
<Setter Property="Opacity" Value=".6" />
<Setter Property="Padding" Value="5" />
</Style>
我已将它应用于两个地方。在第一个,它的工作原理:
<UserControl.Resources>
<DataTemplate x:Key="FileTemplate">
<Border Style="{StaticResource TransparentBackground}">
<TextBlock TextWrapping="Wrap">
<Run Text="{Binding Name, FallbackValue='File Name'}" FontWeight="Bold" />
<Run Text="." Foreground="#787878" FontWeight="Light" />
<Run Text="{Binding TypeExtension, FallbackValue='type'}" Foreground="#787878" FontWeight="Light" />
</TextBlock>
</Border>
</DataTemplate>
</UserControl.Resources>
当我DataTemplate
呈现时,它看起来很棒。但是,当我在LayoutRoot
中使用该样式时,它会失败:
<Border Style="{StaticResource TransparentBackground}">
<TextBlock x:Name="searchResultsFoundCountText" />
</Border>
背景颜色为灰色而不是AntiqueWhite
,不透明度为1
而不是.6
。但是,填充似乎正在起作用。为什么会发生这种情况?
我正在使用Silverlight 4。
答案 0 :(得分:0)
您可以使用样式设定器设置属性。这种方式有一个小优先级(第8位)。
但是你有一个没有触发器的silverlight,你的代码不包含模板,所以可能的答案可能是代码设置器(第3个)或动画(第2个)。
此外,您的样式在root用户控件MainPage.xaml中运行良好。
以下是关于财产优先权的msdn article。