PageLoginMsSkin.xaml.vb 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. Public Class PageLoginMsSkin
  2. Public Sub New()
  3. InitializeComponent()
  4. Skin.Loader = PageLaunchLeft.SkinMs
  5. End Sub
  6. Private Sub PageLoginLegacy_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
  7. Skin.Loader.Start()
  8. End Sub
  9. ''' <summary>
  10. ''' 刷新页面显示的所有信息。
  11. ''' </summary>
  12. Public Sub Reload(KeepInput As Boolean)
  13. TextName.Text = Settings.Get(Of String)("CacheMsV2Name")
  14. '皮肤在 Loaded 加载
  15. End Sub
  16. ''' <summary>
  17. ''' 获取当前页面的登录信息。
  18. ''' </summary>
  19. Public Shared Function GetLoginData() As McLoginMs
  20. If McLoginMsLoader.State = LoadState.Finished Then
  21. Return New McLoginMs With {.OAuthRefreshToken = Settings.Get(Of String)("CacheMsV2OAuthRefresh"), .UserName = Settings.Get(Of String)("CacheMsV2Name"), .AccessToken = Settings.Get(Of String)("CacheMsV2Access"), .Uuid = Settings.Get(Of String)("CacheMsV2Uuid"), .ProfileJson = Settings.Get(Of String)("CacheMsV2ProfileJson")}
  22. Else
  23. Return New McLoginMs With {.OAuthRefreshToken = Settings.Get(Of String)("CacheMsV2OAuthRefresh"), .UserName = Settings.Get(Of String)("CacheMsV2Name")}
  24. End If
  25. End Function
  26. #Region "下边栏其他内容"
  27. '显示/隐藏控制
  28. Private Sub ShowPanel(sender As Object, e As MouseEventArgs) Handles PanData.MouseEnter
  29. AniStart(AaOpacity(PanButtons, 1 - PanButtons.Opacity, 120), "PageLoginMsSkin Button")
  30. End Sub
  31. Public Sub HidePanel(sender As Object, e As EventArgs) Handles PanData.MouseLeave
  32. If BtnEdit.ContextMenu.IsOpen OrElse BtnSkin.ContextMenu.IsOpen OrElse PanData.IsMouseOver Then Return
  33. AniStart(AaOpacity(PanButtons, -PanButtons.Opacity, 120), "PageLoginMsSkin Button")
  34. End Sub
  35. '修改账号信息
  36. Private Sub BtnEdit_Click(sender As Object, e As EventArgs) Handles BtnEdit.Click
  37. BtnEdit.ContextMenu.IsOpen = True
  38. End Sub
  39. '退出登录
  40. Private Sub BtnExit_Click() Handles BtnExit.Click
  41. Settings.Set("CacheMsV2OAuthRefresh", "")
  42. Settings.Set("CacheMsV2Access", "")
  43. Settings.Set("CacheMsV2ProfileJson", "")
  44. Settings.Set("CacheMsV2Uuid", "")
  45. Settings.Set("CacheMsV2Name", "")
  46. Settings.Set("CacheMsV2Expires", 0L)
  47. McLoginMsLoader.Cancel()
  48. FrmLaunchLeft.RefreshPage(False, True)
  49. End Sub
  50. #End Region
  51. #Region "皮肤/披风"
  52. '展开
  53. Private Sub BtnSkin_Click(sender As Object, e As RoutedEventArgs) Handles BtnSkin.Click
  54. BtnSkin.ContextMenu.IsOpen = True
  55. End Sub
  56. '修改皮肤
  57. Private IsChanging As Boolean = False
  58. Public Sub BtnSkinEdit_Click(sender As Object, e As RoutedEventArgs)
  59. '检查条件,获取新皮肤
  60. If IsChanging Then
  61. Hint("正在更改皮肤中,请稍候!")
  62. Return
  63. End If
  64. If McLoginLoader.State = LoadState.Failed Then
  65. Hint("登录失败,无法更改皮肤!", HintType.Red)
  66. Return
  67. End If
  68. Dim SkinInfo As McSkinInfo = McSkinSelect()
  69. If Not SkinInfo.IsVaild Then Return
  70. Hint("正在更改皮肤……")
  71. IsChanging = True
  72. '开始实际获取
  73. RunInNewThread(Sub() EditSkin(SkinInfo), "Ms Skin Upload")
  74. End Sub
  75. Private Sub EditSkin(SkinInfo As McSkinInfo)
  76. IsChanging = False
  77. Hint("此版本已移除在线皮肤上传。")
  78. End Sub
  79. '保存皮肤
  80. Public Sub BtnSkinSave_Click(sender As Object, e As RoutedEventArgs)
  81. Skin.BtnSkinSave_Click()
  82. End Sub
  83. '刷新头像
  84. Public Sub BtnSkinRefresh_Click(sender As Object, e As RoutedEventArgs)
  85. Skin.RefreshClick()
  86. End Sub
  87. '修改披风
  88. Public Sub BtnSkinCape_Click(sender As Object, e As RoutedEventArgs)
  89. Skin.BtnSkinCape_Click()
  90. End Sub
  91. '刷新披风
  92. Public Sub BtnSkinCapeRefresh_Click(sender As Object, e As RoutedEventArgs)
  93. RunInThread(
  94. Sub()
  95. Try
  96. Hint("正在刷新披风列表……")
  97. If McLaunchLoader.State = LoadState.Loading Then
  98. McLoginMsLoader.WaitForExit()
  99. Else
  100. McLoginMsLoader.WaitForExit(GetLoginData(), IsForceRestart:=True)
  101. End If
  102. Hint("已刷新披风列表!", HintType.Green)
  103. Catch ex As Exception
  104. Logger.Error(ex, "刷新披风列表失败", LogBehavior.Toast)
  105. End Try
  106. End Sub)
  107. End Sub
  108. #End Region
  109. End Class