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" x:Name="Thumb"
Width="18" Width="18"
Height="18" Height="18"
Margin="3" Margin="3,3,3,3"
HorizontalAlignment="Left" HorizontalAlignment="Left"
Background="{TemplateBinding ThumbBrush}" Background="{TemplateBinding ThumbBrush}"
CornerRadius="9"> CornerRadius="9">
@@ -41,25 +41,24 @@
Opacity="0.2" Opacity="0.2"
ShadowDepth="1" /> ShadowDepth="1" />
</Border.Effect> </Border.Effect>
<Border.RenderTransform>
<TranslateTransform x:Name="ThumbTranslate" X="0" />
</Border.RenderTransform>
</Border> </Border>
</Grid> </Grid>
<ControlTemplate.Triggers> <ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True"> <Trigger Property="IsChecked" Value="True">
<Setter TargetName="Thumb" Property="Margin" Value="23,3,3,3" />
<Setter TargetName="Track" Property="Background" Value="#2DCC70" />
<Trigger.EnterActions> <Trigger.EnterActions>
<BeginStoryboard> <BeginStoryboard>
<Storyboard> <Storyboard>
<DoubleAnimation <ThicknessAnimation
Storyboard.TargetName="ThumbTranslate" Storyboard.TargetName="Thumb"
Storyboard.TargetProperty="X" Storyboard.TargetProperty="Margin"
To="20" To="23,3,3,3"
Duration="0:0:0.18"> Duration="0:0:0.18">
<DoubleAnimation.EasingFunction> <ThicknessAnimation.EasingFunction>
<CubicEase EasingMode="EaseInOut" /> <CubicEase EasingMode="EaseInOut" />
</DoubleAnimation.EasingFunction> </ThicknessAnimation.EasingFunction>
</DoubleAnimation> </ThicknessAnimation>
<ColorAnimation <ColorAnimation
Storyboard.TargetName="Track" Storyboard.TargetName="Track"
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
@@ -72,21 +71,18 @@
</Storyboard> </Storyboard>
</BeginStoryboard> </BeginStoryboard>
</Trigger.EnterActions> </Trigger.EnterActions>
</Trigger> <Trigger.ExitActions>
<Trigger Property="IsChecked" Value="False">
<Trigger.EnterActions>
<BeginStoryboard> <BeginStoryboard>
<Storyboard> <Storyboard>
<DoubleAnimation <ThicknessAnimation
Storyboard.TargetName="ThumbTranslate" Storyboard.TargetName="Thumb"
Storyboard.TargetProperty="X" Storyboard.TargetProperty="Margin"
To="0" To="3,3,3,3"
Duration="0:0:0.18"> Duration="0:0:0.18">
<DoubleAnimation.EasingFunction> <ThicknessAnimation.EasingFunction>
<CubicEase EasingMode="EaseInOut" /> <CubicEase EasingMode="EaseInOut" />
</DoubleAnimation.EasingFunction> </ThicknessAnimation.EasingFunction>
</DoubleAnimation> </ThicknessAnimation>
<ColorAnimation <ColorAnimation
Storyboard.TargetName="Track" Storyboard.TargetName="Track"
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
@@ -98,7 +94,7 @@
</ColorAnimation> </ColorAnimation>
</Storyboard> </Storyboard>
</BeginStoryboard> </BeginStoryboard>
</Trigger.EnterActions> </Trigger.ExitActions>
</Trigger> </Trigger>
<Trigger Property="IsEnabled" Value="False"> <Trigger Property="IsEnabled" Value="False">
+1 -1
View File
@@ -127,7 +127,7 @@
Margin="4,10,4,4" Margin="4,10,4,4"
HorizontalAlignment="Center" HorizontalAlignment="Center"
ToolTip="主界面实时" ToolTip="主界面实时"
IsChecked="True" IsChecked="{Binding IsMainViewportRealtimeEnabled, Mode=TwoWay}"
SwitchWidth="44" SwitchWidth="44"
SwitchHeight="24" /> SwitchHeight="24" />
<TextBlock <TextBlock