我正在用一些XAML语法挣扎一点,希望有人可以提供建议.我想创建一个“效果”类型样式资源,其中包含可以重用的DropShadowEffect定义,而不是始终手动设置属性.这是我有的:
<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,10" /> <Setter Property="Effect" Value="{StaticResource DropShadowEffectStyle}" /> </Style>
每次运行这样的时候,这样做都会失败,所以我显然会丢失一些东西.我认为它是围绕文本块样式的“效果”属性,期望“效果”类型而不是“DopShadowEffect”类型.有任何想法吗?
解决方法
您不能“设计”一个效果,因为Style是Control的属性,效果不是Control.
您真正想要做的是将效果本身放入资源字典中,并使用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" /> <Setter Property="Effect" Value="{StaticResource dropShadow}" /> </Style> </UserControl.Resources>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。