增加上一次状态的保存和恢复

This commit is contained in:
ww-rm
2025-09-08 00:00:49 +08:00
parent e9951ed79a
commit 672a695b20
6 changed files with 52 additions and 100 deletions

View File

@@ -93,11 +93,6 @@ namespace SpineViewer.ViewModels.MainWindow
DebugPoints = DebugPoints,
DebugClippings = DebugClippings,
MaxFps = MaxFps,
Speed = Speed,
ShowAxis = ShowAxis,
BackgroundColor = BackgroundColor,
RenderSelectedOnly = RenderSelectedOnly,
AppLanguage = AppLanguage,
};
@@ -122,11 +117,6 @@ namespace SpineViewer.ViewModels.MainWindow
DebugPoints = value.DebugPoints;
DebugClippings = value.DebugClippings;
MaxFps = value.MaxFps;
Speed = value.Speed;
ShowAxis = value.ShowAxis;
BackgroundColor = value.BackgroundColor;
RenderSelectedOnly = value.RenderSelectedOnly;
AppLanguage = value.AppLanguage;
}
@@ -230,34 +220,6 @@ namespace SpineViewer.ViewModels.MainWindow
#endregion
#region
public uint MaxFps
{
get => _vmMain.SFMLRendererViewModel.MaxFps;
set => SetProperty(_vmMain.SFMLRendererViewModel.MaxFps, value, v => _vmMain.SFMLRendererViewModel.MaxFps = value);
}
public float Speed
{
get => _vmMain.SFMLRendererViewModel.Speed;
set => SetProperty(_vmMain.SFMLRendererViewModel.Speed, value, v => _vmMain.SFMLRendererViewModel.Speed = value);
}
public bool ShowAxis
{
get => _vmMain.SFMLRendererViewModel.ShowAxis;
set => SetProperty(_vmMain.SFMLRendererViewModel.ShowAxis, value, v => _vmMain.SFMLRendererViewModel.ShowAxis = value);
}
public Color BackgroundColor
{
get => _vmMain.SFMLRendererViewModel.BackgroundColor;
set => SetProperty(_vmMain.SFMLRendererViewModel.BackgroundColor, value, v => _vmMain.SFMLRendererViewModel.BackgroundColor = value);
}
#endregion
#region
public static ImmutableArray<AppLanguage> AppLanguageOptions { get; } = Enum.GetValues<AppLanguage>().ToImmutableArray();

View File

@@ -86,6 +86,14 @@ namespace SpineViewer.ViewModels.MainWindow
/// </summary>
public event NotifyCollectionChangedEventHandler? RequestSelectionChanging;
public void SetResolution(uint x, uint y)
{
var lastRes = _renderer.Resolution;
_renderer.Resolution = new(x, y);
if (lastRes.X != x) OnPropertyChanged(nameof(ResolutionX));
if (lastRes.Y != y) OnPropertyChanged(nameof(ResolutionY));
}
public uint ResolutionX
{
get => _renderer.Resolution.X;
@@ -455,8 +463,7 @@ namespace SpineViewer.ViewModels.MainWindow
}
set
{
ResolutionX = value.ResolutionX;
ResolutionY = value.ResolutionY;
SetResolution(value.ResolutionX, value.ResolutionY);
CenterX = value.CenterX;
CenterY = value.CenterY;
Zoom = value.Zoom;