Silverlight 在XAML中创建阴影样式
我对一些XAML语法有点纠结,希望有人能给我一些建议。我想创建一个“Effect”类型的样式资源,其中包含一个DropShadowEffect定义,该定义可以重用,而不是总是手动设置属性。以下是我所拥有的:Silverlight 在XAML中创建阴影样式,silverlight,xaml,coding-style,Silverlight,Xaml,Coding Style,我对一些XAML语法有点纠结,希望有人能给我一些建议。我想创建一个“Effect”类型的样式资源,其中包含一个DropShadowEffect定义,该定义可以重用,而不是总是手动设置属性。以下是我所拥有的: <Style TargetType="DropShadowEffect" x:Name="DropShadowEffectStyle"> <Setter Property="BlurRadius" Value="5" /> <Setter Propert
<Style TargetType="DropShadowEffect" x:Name="DropShadowEffectStyle">
<Setter Property="BlurRadius" Value="5" />
<Setter Property="Direction" Value="315" />
<Setter Property="ShadowDepth" Value="2" />
<Setter Property="Opacity" Value="0.5" />
</Style>
<Style TargetType="TextBlock" x:Name="PageTabLabelStyle">
<Setter Property="FontSize" Value="16" />
<Setter Property="FontFamily" Value="Arial" />
<Setter Property="Foreground" Value="#EFEFEF" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Margin" Value="0, 10, 0, 10" />
<Setter Property="Effect" Value="{StaticResource DropShadowEffectStyle}" />
</Style>
每次运行时都会失败,所以我显然错过了一些东西。我认为它是围绕文本块样式的“Effect”属性的,它期望的是“Effect”类型而不是“DopShadowEffect”类型。有什么想法吗?你不能“设计”效果,因为风格是控件的属性,而效果不是控件
您真正想要做的是将效果本身放入资源字典中,并使用StaticResource引用指向它。比如:
<UserControl.Resources>
<DropShadowEffect x:Key="dropShadow" BlurRadius="25" Direction="315" />
<Style TargetType="TextBlock" x:Name="PageTabLabelStyle">
<Setter Property="FontSize" Value="16" />
<Setter Property="FontFamily" Value="Arial" />
<Setter Property="Foreground" Value="#EFEFEF" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Margin" Value="0, 10, 0, 10" />
<Setter Property="Effect" Value="{StaticResource dropShadow}" />
</Style>
</UserControl.Resources>
太好了,谢谢Keith。可能还值得一提的是,DropShadowEffect声明必须在被引用之前出现(以防不明显!)。