禁用 DropShadowEffect 的最佳方法是什么,例如,如果您知道自己正在远程会话中运行?
我可以考虑将颜色设置为透明,将模糊半径设置为 0,或者将不透明度设置为零,但不确定这些选择是否有任何差异,或者是否有更好的解决方案。
禁用 DropShadowEffect 的最佳方法是什么,例如,如果您知道自己正在远程会话中运行?
我可以考虑将颜色设置为透明,将模糊半径设置为 0,或者将不透明度设置为零,但不确定这些选择是否有任何差异,或者是否有更好的解决方案。
样式触发器 + 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 之外,您还可以设置控件的样式,使其一开始甚至不使用效果。