fix: 修复实时开关绑定及动画效果

- MainWindow.xaml: 绑定 IsChecked 到 IsMainViewportRealtimeEnabled
- Generic.xaml: 修复 AnimatedSwitch 模板,添加初始状态 Setter 和 ExitActions 动画
This commit is contained in:
李伟
2026-05-09 10:17:39 +08:00
parent 7cf16ecdbc
commit 827050faf0
2 changed files with 21 additions and 25 deletions
+19 -23
View File
@@ -30,7 +30,7 @@
x:Name="Thumb"
Width="18"
Height="18"
Margin="3"
Margin="3,3,3,3"
HorizontalAlignment="Left"
Background="{TemplateBinding ThumbBrush}"
CornerRadius="9">
@@ -41,25 +41,24 @@
Opacity="0.2"
ShadowDepth="1" />
</Border.Effect>
<Border.RenderTransform>
<TranslateTransform x:Name="ThumbTranslate" X="0" />
</Border.RenderTransform>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="Thumb" Property="Margin" Value="23,3,3,3" />
<Setter TargetName="Track" Property="Background" Value="#2DCC70" />
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="ThumbTranslate"
Storyboard.TargetProperty="X"
To="20"
<ThicknessAnimation
Storyboard.TargetName="Thumb"
Storyboard.TargetProperty="Margin"
To="23,3,3,3"
Duration="0:0:0.18">
<DoubleAnimation.EasingFunction>
<ThicknessAnimation.EasingFunction>
<CubicEase EasingMode="EaseInOut" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</ThicknessAnimation.EasingFunction>
</ThicknessAnimation>
<ColorAnimation
Storyboard.TargetName="Track"
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
@@ -72,21 +71,18 @@
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="ThumbTranslate"
Storyboard.TargetProperty="X"
To="0"
<ThicknessAnimation
Storyboard.TargetName="Thumb"
Storyboard.TargetProperty="Margin"
To="3,3,3,3"
Duration="0:0:0.18">
<DoubleAnimation.EasingFunction>
<ThicknessAnimation.EasingFunction>
<CubicEase EasingMode="EaseInOut" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</ThicknessAnimation.EasingFunction>
</ThicknessAnimation>
<ColorAnimation
Storyboard.TargetName="Track"
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
@@ -98,7 +94,7 @@
</ColorAnimation>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger.ExitActions>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
+1 -1
View File
@@ -127,7 +127,7 @@
Margin="4,10,4,4"
HorizontalAlignment="Center"
ToolTip="主界面实时"
IsChecked="True"
IsChecked="{Binding IsMainViewportRealtimeEnabled, Mode=TwoWay}"
SwitchWidth="44"
SwitchHeight="24" />
<TextBlock