PageLoginLegacy.xaml.vb 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. Imports System.Windows.Forms
  2. Public Class PageLoginLegacy
  3. Public Sub New()
  4. InitializeComponent()
  5. Skin.Loader = PageLaunchLeft.SkinLegacy
  6. End Sub
  7. Private Sub PageLoginLegacy_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
  8. Skin.Loader.Start()
  9. End Sub
  10. Public IsReloaded As Boolean = False
  11. ''' <summary>
  12. ''' 刷新页面显示的所有信息。
  13. ''' </summary>
  14. Public Sub Reload(KeepInput As Boolean)
  15. If KeepInput AndAlso IsReloaded Then '避免第一次就以 KeepInput 的方式加载,导致文本框里没东西
  16. '保留输入,只刷新下拉框列表
  17. Dim Input As String = ComboName.Text.Trim
  18. ComboName.ItemsSource = If(Setup.Get("LoginLegacyName") = "", Nothing, Setup.Get("LoginLegacyName").ToString.Split("¨"))
  19. ComboName.Text = Input
  20. Else
  21. '不保留输入,刷新列表后自动选择第一项
  22. If Setup.Get("LoginLegacyName") = "" Then
  23. ComboName.ItemsSource = Nothing
  24. Else
  25. ComboName.ItemsSource = Setup.Get("LoginLegacyName").ToString.Split("¨")
  26. ComboName.Text = Setup.Get("LoginLegacyName").ToString.Split("¨")(0).Trim
  27. End If
  28. End If
  29. IsReloaded = True
  30. End Sub
  31. ''' <summary>
  32. ''' 获取当前页面的登录信息。
  33. ''' </summary>
  34. Public Shared Function GetLoginData() As McLoginData
  35. Dim UserName As String = If(FrmLoginLegacy Is Nothing, "", FrmLoginLegacy.ComboName.Text.Replace("¨", "").Trim)
  36. Return New McLoginLegacy With {.UserName = UserName, .SkinType = Setup.Get("LaunchSkinType"), .SkinName = Setup.Get("LaunchSkinID")}
  37. End Function
  38. ''' <summary>
  39. ''' 当前页面的登录信息是否有效。
  40. ''' </summary>
  41. Public Shared Function IsVaild(LoginData As McLoginLegacy) As String
  42. If LoginData.UserName.Trim = "" Then Return "玩家名不能为空!"
  43. If LoginData.UserName.Contains("""") Then Return "玩家名不能包含英文引号!"
  44. Return ""
  45. End Function
  46. Public Function IsVaild() As String
  47. Return IsVaild(GetLoginData())
  48. End Function
  49. Private Sub ComboName_PreviewKeyDown(sender As Object, e As Input.KeyEventArgs) Handles ComboName.PreviewKeyDown
  50. If e.Key = Key.Space Then
  51. Dim Index = CType(ComboName.Template.FindName("PART_EditableTextBox", ComboName), MyTextBox).CaretIndex
  52. If Index = ComboName.Text.Length OrElse Index = 0 Then e.Handled = True
  53. End If
  54. End Sub
  55. Private Sub ComboLegacy_TextChanged(sender As Object, e As TextChangedEventArgs) Handles ComboName.TextChanged
  56. If Setup.Get("LaunchSkinType") = 0 Then PageLaunchLeft.SkinLegacy.Start(IsForceRestart:=True)
  57. HintChinese.Visibility = If(RegexCheck(ComboName.Text, "^[0-9A-Za-z_]*$"), Visibility.Collapsed, Visibility.Visible)
  58. End Sub
  59. Private Sub Skin_Click() Handles Skin.Click
  60. If (Setup.Get("UiHiddenPageSetup") OrElse Setup.Get("UiHiddenSetupLaunch")) AndAlso Not PageSetupUI.HiddenForceShow Then
  61. Hint("启动设置已被禁用!", HintType.Critical)
  62. Else
  63. FrmMain.PageChange(FormMain.PageType.Setup, FormMain.PageSubType.SetupLaunch) '切换到皮肤设置页面
  64. End If
  65. End Sub
  66. End Class