Skip to content
This repository was archived by the owner on May 26, 2026. It is now read-only.

Commit f030967

Browse files
committed
fix: 记住右侧内容页的子页面状态
1 parent d3dc801 commit f030967

1 file changed

Lines changed: 87 additions & 87 deletions

File tree

Plain Craft Launcher 2/FormMain.xaml.cs

Lines changed: 87 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1759,7 +1759,7 @@ private void BtnTitleSelect_Click(MyRadioButton sender, bool raiseByMouse)
17591759
return;
17601760
var pageType = (PageType)int.Parse(sender.Tag.ToString());
17611761
PageChangeActual(pageType, PageSubType.Default);
1762-
}
1762+
}
17631763

17641764
private void BtnTitleInner_Click(object sender, EventArgs e)
17651765
{
@@ -1803,9 +1803,9 @@ private void PageChangeActual(PageStackData Stack, PageSubType SubType)
18031803
ModAnimation.AniStart(
18041804
new[]
18051805
{
1806-
ModAnimation.AaOpacity(LabTitleInner, -LabTitleInner.Opacity, 130),
1807-
ModAnimation.AaCode(() => LabTitleInner.Text = PageName, After: true),
1808-
ModAnimation.AaOpacity(LabTitleInner, 1d, 150, 30)
1806+
ModAnimation.AaOpacity(LabTitleInner, -LabTitleInner.Opacity, 130),
1807+
ModAnimation.AaCode(() => LabTitleInner.Text = PageName, After: true),
1808+
ModAnimation.AaOpacity(LabTitleInner, 1d, 150, 30)
18091809
}, "FrmMain Titlebar SubLayer");
18101810
if (PageStack.Contains(Stack))
18111811
// 返回到更上层的子页面
@@ -1825,13 +1825,13 @@ private void PageChangeActual(PageStackData Stack, PageSubType SubType)
18251825
ModAnimation.AniStart(
18261826
new[]
18271827
{
1828-
ModAnimation.AaOpacity(PanTitleMain, -PanTitleMain.Opacity, 150),
1829-
ModAnimation.AaX(PanTitleMain, 12d - PanTitleMain.Margin.Left, 150,
1830-
Ease: new ModAnimation.AniEaseInFluent(ModAnimation.AniEasePower.Weak)),
1831-
ModAnimation.AaOpacity(PanTitleInner, 1d - PanTitleInner.Opacity, 150, 200),
1832-
ModAnimation.AaX(PanTitleInner, -PanTitleInner.Margin.Left, 350, 200,
1833-
new ModAnimation.AniEaseOutBack()),
1834-
ModAnimation.AaCode(() => PanTitleMain.Visibility = Visibility.Collapsed, After: true)
1828+
ModAnimation.AaOpacity(PanTitleMain, -PanTitleMain.Opacity, 150),
1829+
ModAnimation.AaX(PanTitleMain, 12d - PanTitleMain.Margin.Left, 150,
1830+
Ease: new ModAnimation.AniEaseInFluent(ModAnimation.AniEasePower.Weak)),
1831+
ModAnimation.AaOpacity(PanTitleInner, 1d - PanTitleInner.Opacity, 150, 200),
1832+
ModAnimation.AaX(PanTitleInner, -PanTitleInner.Margin.Left, 350, 200,
1833+
new ModAnimation.AniEaseOutBack()),
1834+
ModAnimation.AaCode(() => PanTitleMain.Visibility = Visibility.Collapsed, After: true)
18351835
}, "FrmMain Titlebar FirstLayer");
18361836
PageStack.Insert(0, PageCurrent);
18371837
}
@@ -1845,93 +1845,93 @@ private void PageChangeActual(PageStackData Stack, PageSubType SubType)
18451845
switch (Stack.Page)
18461846
{
18471847
case PageType.Launch: // 启动
1848-
{
1849-
PageChangeAnim(ModMain.FrmLaunchLeft, ModMain.FrmLaunchRight);
1850-
break;
1851-
}
1848+
{
1849+
PageChangeAnim(ModMain.FrmLaunchLeft, ModMain.FrmLaunchRight);
1850+
break;
1851+
}
18521852
case PageType.Download: // 下载
1853-
{
1854-
if (ModMain.FrmDownloadLeft is null)
1855-
ModMain.FrmDownloadLeft = new PageDownloadLeft();
1856-
// PageGet 方法会在未设置 SubType 时指定默认值,并建立相关页面的实例
1857-
PageChangeAnim(ModMain.FrmDownloadLeft, (FrameworkElement)ModMain.FrmDownloadLeft.PageGet(SubType));
1858-
break;
1859-
}
1853+
{
1854+
ModMain.FrmDownloadLeft ??= new PageDownloadLeft();
1855+
SubType = ModMain.FrmDownloadLeft.PageID;
1856+
// PageGet 方法会在未设置 SubType 时指定默认值,并建立相关页面的实例
1857+
PageChangeAnim(ModMain.FrmDownloadLeft, (FrameworkElement)ModMain.FrmDownloadLeft.PageGet(SubType));
1858+
break;
1859+
}
18601860
case PageType.Tools: // 联机
1861-
{
1862-
if (ModMain.FrmToolsLeft is null)
1863-
ModMain.FrmToolsLeft = new PageToolsLeft();
1864-
PageChangeAnim(ModMain.FrmToolsLeft, (FrameworkElement)ModMain.FrmToolsLeft.PageGet(SubType));
1865-
break;
1866-
}
1861+
{
1862+
ModMain.FrmToolsLeft ??= new PageToolsLeft();
1863+
SubType = ModMain.FrmToolsLeft.PageID;
1864+
PageChangeAnim(ModMain.FrmToolsLeft, (FrameworkElement)ModMain.FrmToolsLeft.PageGet(SubType));
1865+
break;
1866+
}
18671867
case PageType.Setup: // 设置
1868-
{
1869-
if (ModMain.FrmSetupLeft is null)
1870-
ModMain.FrmSetupLeft = new PageSetupLeft();
1871-
PageChangeAnim(ModMain.FrmSetupLeft, (FrameworkElement)ModMain.FrmSetupLeft.PageGet(SubType));
1872-
break;
1873-
}
1868+
{
1869+
ModMain.FrmSetupLeft ??= new PageSetupLeft();
1870+
SubType = ModMain.FrmSetupLeft.PageID;
1871+
PageChangeAnim(ModMain.FrmSetupLeft, (FrameworkElement)ModMain.FrmSetupLeft.PageGet(SubType));
1872+
break;
1873+
}
18741874
case PageType.GameLog: // 实时日志
1875-
{
1876-
if (ModMain.FrmLogLeft is null)
1877-
ModMain.FrmLogLeft = new PageLogLeft();
1878-
if (ModMain.FrmLogLeft is null)
1879-
ModMain.FrmLogRight = new PageLogRight();
1880-
PageChangeAnim(ModMain.FrmLogLeft, ModMain.FrmLogRight);
1881-
break;
1882-
}
1875+
{
1876+
if (ModMain.FrmLogLeft is null)
1877+
ModMain.FrmLogLeft = new PageLogLeft();
1878+
if (ModMain.FrmLogLeft is null)
1879+
ModMain.FrmLogRight = new PageLogRight();
1880+
PageChangeAnim(ModMain.FrmLogLeft, ModMain.FrmLogRight);
1881+
break;
1882+
}
18831883
case PageType.InstanceSelect: // 实例选择
1884-
{
1885-
if (ModMain.FrmSelectLeft is null)
1886-
ModMain.FrmSelectLeft = new PageSelectLeft();
1887-
if (ModMain.FrmSelectRight is null)
1888-
ModMain.FrmSelectRight = new PageSelectRight();
1889-
PageChangeAnim(ModMain.FrmSelectLeft, ModMain.FrmSelectRight);
1890-
break;
1891-
}
1884+
{
1885+
if (ModMain.FrmSelectLeft is null)
1886+
ModMain.FrmSelectLeft = new PageSelectLeft();
1887+
if (ModMain.FrmSelectRight is null)
1888+
ModMain.FrmSelectRight = new PageSelectRight();
1889+
PageChangeAnim(ModMain.FrmSelectLeft, ModMain.FrmSelectRight);
1890+
break;
1891+
}
18921892
case PageType.TaskManager: // 任务管理
1893-
{
1894-
if (ModMain.FrmSpeedLeft is null)
1895-
ModMain.FrmSpeedLeft = new PageSpeedLeft();
1896-
if (ModMain.FrmSpeedRight is null)
1897-
ModMain.FrmSpeedRight = new PageSpeedRight();
1898-
PageChangeAnim(ModMain.FrmSpeedLeft, ModMain.FrmSpeedRight);
1899-
break;
1900-
}
1893+
{
1894+
if (ModMain.FrmSpeedLeft is null)
1895+
ModMain.FrmSpeedLeft = new PageSpeedLeft();
1896+
if (ModMain.FrmSpeedRight is null)
1897+
ModMain.FrmSpeedRight = new PageSpeedRight();
1898+
PageChangeAnim(ModMain.FrmSpeedLeft, ModMain.FrmSpeedRight);
1899+
break;
1900+
}
19011901
case PageType.InstanceSetup: // 实例设置
1902-
{
1903-
if (ModMain.FrmInstanceLeft is null)
1904-
ModMain.FrmInstanceLeft = new PageInstanceLeft();
1905-
PageChangeAnim(ModMain.FrmInstanceLeft, (FrameworkElement)ModMain.FrmInstanceLeft.PageGet(SubType));
1906-
break;
1907-
}
1902+
{
1903+
if (ModMain.FrmInstanceLeft is null)
1904+
ModMain.FrmInstanceLeft = new PageInstanceLeft();
1905+
PageChangeAnim(ModMain.FrmInstanceLeft, (FrameworkElement)ModMain.FrmInstanceLeft.PageGet(SubType));
1906+
break;
1907+
}
19081908
case PageType.CompDetail: // Mod 信息
1909-
{
1910-
if (ModMain.FrmDownloadCompDetail is null)
1911-
ModMain.FrmDownloadCompDetail = new PageDownloadCompDetail();
1912-
PageChangeAnim(new MyPageLeft(), ModMain.FrmDownloadCompDetail);
1913-
break;
1914-
}
1909+
{
1910+
if (ModMain.FrmDownloadCompDetail is null)
1911+
ModMain.FrmDownloadCompDetail = new PageDownloadCompDetail();
1912+
PageChangeAnim(new MyPageLeft(), ModMain.FrmDownloadCompDetail);
1913+
break;
1914+
}
19151915
case PageType.HelpDetail: // 帮助详情
1916-
{
1917-
PageChangeAnim(new MyPageLeft(), ((dynamic)Stack.Additional)[1]);
1918-
break;
1919-
}
1916+
{
1917+
PageChangeAnim(new MyPageLeft(), ((dynamic)Stack.Additional)[1]);
1918+
break;
1919+
}
19201920
case PageType.VersionSaves: // 存档管理
1921-
{
1922-
if (ModMain.FrmInstanceSavesLeft is null)
1923-
ModMain.FrmInstanceSavesLeft = new PageInstanceSavesLeft();
1924-
PageInstanceSavesLeft.CurrentSave = Conversions.ToString(Stack.Additional);
1925-
PageChangeAnim(ModMain.FrmInstanceSavesLeft,
1926-
(FrameworkElement)ModMain.FrmInstanceSavesLeft.PageGet(SubType));
1927-
break;
1928-
}
1921+
{
1922+
if (ModMain.FrmInstanceSavesLeft is null)
1923+
ModMain.FrmInstanceSavesLeft = new PageInstanceSavesLeft();
1924+
PageInstanceSavesLeft.CurrentSave = Conversions.ToString(Stack.Additional);
1925+
PageChangeAnim(ModMain.FrmInstanceSavesLeft,
1926+
(FrameworkElement)ModMain.FrmInstanceSavesLeft.PageGet(SubType));
1927+
break;
1928+
}
19291929
case PageType.HomePageMarket: // 主页市场
1930-
{
1931-
ModMain.FrmHomePageMarket = ModMain.FrmHomePageMarket ?? new PageHomePageMarket();
1932-
PageChangeAnim(new MyPageLeft(), ModMain.FrmHomePageMarket);
1933-
break;
1934-
}
1930+
{
1931+
ModMain.FrmHomePageMarket = ModMain.FrmHomePageMarket ?? new PageHomePageMarket();
1932+
PageChangeAnim(new MyPageLeft(), ModMain.FrmHomePageMarket);
1933+
break;
1934+
}
19351935
}
19361936

19371937
#endregion

0 commit comments

Comments
 (0)