mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-22 00:54:26 +08:00
53 lines
2.7 KiB
Markdown
53 lines
2.7 KiB
Markdown
# Tasks
|
||
|
||
- [x] Task 1: 在 `AppSettingsSnapshot` 中添加 `EnableSlideTransition` 字段
|
||
- [x] 添加 `public bool EnableSlideTransition { get; set; } = false;`
|
||
- [x] 在 `Clone()` 方法中无需特殊处理(bool 是值类型)
|
||
|
||
- [x] Task 2: 在 `MainWindow.axaml` 的 `DesktopPage` 上添加 `TranslateTransform` 和过渡动画
|
||
- [x] 添加 `<TranslateTransform />`
|
||
- [x] 在 `Grid.Transitions` 中添加 `TranslateTransform.X` 的 `DoubleTransition`,使用 `FluttermotionToken.Duration.Intro` 和 DecelerateBezier 缓动
|
||
|
||
- [x] Task 3: 在 `MainWindow.axaml.cs` 中实现退场动画逻辑
|
||
- [x] 添加 `_isSlideAnimationActive` 标志位
|
||
- [x] 修改 `OnMinimizeClick`,调用新的 `SlideOutAndMinimizeAsync` 方法
|
||
- [x] 实现 `SlideOutAndMinimizeAsync`:读取设置 → 播放退场动画(Opacity + 可选滑动)→ 等动画完成 → 最小化 → 重置位置
|
||
- [x] 动画期间设置 `DesktopPage.IsHitTestVisible = false`
|
||
|
||
- [x] Task 4: 在 `MainWindow.axaml.cs` 中实现入场动画逻辑
|
||
- [x] 添加 `public void PrepareEnterAnimation()` 方法:禁用过渡 → 设置初始位置(Opacity=0, X=屏幕宽度或0)→ 重新启用过渡
|
||
- [x] 添加 `public void PlayEnterAnimation()` 方法:触发入场动画(Opacity=1, X=0)
|
||
- [x] 添加 `private bool IsSlideTransitionEnabled()` 方法,从设置中读取
|
||
|
||
- [x] Task 5: 修改 `App.axaml.cs` 的 `RestoreOrCreateMainWindow`
|
||
- [x] 在窗口状态切换前调用 `mainWindow.PrepareEnterAnimation()`
|
||
- [x] 在 FullScreen 状态生效后调用 `mainWindow.PlayEnterAnimation()`
|
||
|
||
- [x] Task 6: 修改 `MainWindow.axaml.cs` 的 `OnWindowPropertyChanged`
|
||
- [x] 当 `_isSlideAnimationActive` 为 true 时跳过强制全屏逻辑
|
||
|
||
- [x] Task 7: 在 `GeneralSettingsPageViewModel` 中添加 `EnableSlideTransition` 属性
|
||
- [x] 添加 `[ObservableProperty] private bool _enableSlideTransition;`
|
||
- [x] 添加 `OnEnableSlideTransitionChanged` 持久化方法
|
||
- [x] 在构造函数和 `OnSettingsChanged` 中加载/同步该设置
|
||
- [x] 添加 `IsSlideTransitionAvailable` 平台检测属性
|
||
|
||
- [x] Task 8: 在 `GeneralSettingsPage.axaml` 中添加"滑入滑出过渡效果"开关
|
||
- [x] 在"运行时设置"分组中添加 `SettingsExpander`
|
||
- [x] 仅 Windows 平台显示(使用 `IsVisible` 绑定到 `IsSlideTransitionAvailable`)
|
||
- [x] 图标使用 `ArrowRight`
|
||
|
||
- [x] Task 9: 构建验证
|
||
- [x] 执行 `dotnet build` 确保无编译错误
|
||
|
||
# Task Dependencies
|
||
|
||
- [Task 2] depends on [Task 1]
|
||
- [Task 3] depends on [Task 1, Task 2]
|
||
- [Task 4] depends on [Task 1, Task 2]
|
||
- [Task 5] depends on [Task 4]
|
||
- [Task 6] depends on [Task 3]
|
||
- [Task 7] depends on [Task 1]
|
||
- [Task 8] depends on [Task 7]
|
||
- [Task 9] depends on [Task 3, Task 4, Task 5, Task 6, Task 7, Task 8]
|