我是一个WPF新手,我的问题是我想在XAML代码中将一些属性类型强制转换为另一个权限,如下所示:
//I want to cast Effect to DropShadowEffect to access it's ShadowDepth
<Trigger Property="IsPressed" Value="True">
<Setter Property="Effect.ShadowDepth" Value="0.5"/>
</Trigger>
但是ShadowDepth
是不可访问的,Effect
应该首先被广播到DropShadowEffect
。你能给我看一下我可以在XAML代码中正确执行强制转换的任何解决方案吗。如果不可能的话,代码背后的TypeConverter
就可以了。提前谢谢。
我看到了两种可能性:
-
在setter中重新创建
DropShadowEffect
,重新创建对象的Effect
。 -
给
DropShadowEffect
一个名称,并使用TargetName
:直接引用对象<Setter TargetName="dropShadow" Property="ShadowDepth" Value="0.5" />