我试图在<Style.Resources>
元素中显式声明一个StaticResource,但是当我尝试运行该应用程序时出现此错误:
无法转换类型为#System; Windows.Media.Effects.DropShadowEffect&#39;的对象输入&#39; System.Windows.ResourceDictionary&#39;。
以下是相关代码:
<DropShadowEffect x:Key="Sombra" Opacity="0.5" ShadowDepth="3" BlurRadius="5"/>
<Style x:Key="BotãoNavegaçãoBase" TargetType="{x:Type ButtonBase}" BasedOn="{StaticResource BotãoGeometria}">
<Style.Resources>
<StaticResource x:Key="PathShadow" ResourceKey="Sombra"/>
</Style.Resources>
</Style>
如果在错误消息提示之后,我将<StaticResource/>
包裹在ResourceDictionary
中,我会得到一个&#34;缺少密钥&#34;错误:
<Style.Resources>
<ResourceDictionary>
<StaticResource x:Key="PathShadow" ResourceKey="Sombra"/>
</ResourceDictionary>
</Style.Resources>
在&#39; StaticResourceHolder&#39;上缺少键值对象
答案 0 :(得分:1)
您已经关闭,但您在示例中尝试执行的操作是为Effect
的属性提供资源,其中DropShadowEffect
{{1}已经。
你真正想做的是这个;
StaticResource
或者,如果你真的希望它嵌入在实例中,那么;
<DropShadowEffect x:Key="Sombra" Opacity="0.5" ShadowDepth="3" BlurRadius="5"/>
<Style x:Key="BotãoNavegaçãoBase" TargetType="{x:Type ButtonBase}"
BasedOn="{StaticResource BotãoGeometria}">
<Setter Property="Effect" Value="{StaticResource Sombra}"/>
</Style>
希望这会有所帮助,欢呼。