如果您知道自己正在运行远程会话,那么禁用DropShadowEffect的最佳方法是什么?
我能想到的方法有将颜色设置为透明,模糊半径设置为0或不透明度设置为零,但不确定这些选择是否有区别,或者是否有更好的解决方案。
如果您知道自己正在运行远程会话,那么禁用DropShadowEffect的最佳方法是什么?
我能想到的方法有将颜色设置为透明,模糊半径设置为0或不透明度设置为零,但不确定这些选择是否有区别,或者是否有更好的解决方案。
Style triggers + RenderCapability Tiers是你需要的东西。虽然有一些更友好的方式来返回渲染层级能力,但是总体思路是一样的。当使用终端服务或硬件效果没有渲染能力时,你可以使用样式触发器来移除效果。
<Style>
<Style.Triggers>
<Trigger Property="Perf:RenderCapabilityWrapper.Tier" Value="0">
<Setter Property="Effect" Value="{x:Null}"/>
</Trigger>
<Trigger Property="Perf:RenderCapabilityWrapper.Tier" Value="1">
<Setter Property="Effect" Value="{StaticResource performanceShadow}"/>
</Trigger>
<Trigger Property="Perf:RenderCapabilityWrapper.Tier" Value="2">
<Setter Property="Effect" Value="{StaticResource qualityShadow}"/>
</Trigger>
</Style.Triggers>
</Style>
不必禁用DropShadowEffect,您可以将控件样式设置为根本不使用该效果。