情景:程序初期没有多少东西的时候,添加了整套流程的动画,是极其流畅,后期也就没在动过,但是开发到中期发现动画突然卡顿了,无论是网上找还是丢给AI判断,都是以程序优化和动画优化为主。
错误原因:我是将所有的子界面,全都加到主界面中的Grid上的,错误原因就是主界面的Grid外边有一层Border做了阴影效果。
解决方案:注解面的阴影效果去掉。
原版
csharp
<!-- 阴影容器 - 添加Margin为阴影留出空间 -->
<Border
x:Name="border_Main"
Margin="20"
Background="White"
BorderBrush="Gray"
BorderThickness="1">
<!-- 关键:添加Margin让阴影可见 -->
<!-- 问题点就是这里,去掉就可以了,不只是主页的动画有影响,所有地方的动画均有影响 -->
<Border.Effect>
<DropShadowEffect
BlurRadius="10"
Direction="270"
Opacity="0.5"
ShadowDepth="5"
Color="Black" />
</Border.Effect>
<!-- 调整内部容器尺寸 -->
<Border Margin="0" Background="Transparent">
<!-- 内部不需要Margin -->
<Grid x:Name="DllContainer">
<!-- DLL控件将在这里动态加载 -->
</Grid>
</Border>
</Border>