PageDownloadOptiFine.xaml.vb 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. Public Class PageDownloadOptiFine
  2. Private Sub LoaderInit() Handles Me.Initialized
  3. PageLoaderInit(Load, PanLoad, PanMain, CardTip, DlOptiFineListLoader, AddressOf Load_OnFinish)
  4. End Sub
  5. Private Sub Init() Handles Me.Loaded
  6. PanBack.ScrollToHome()
  7. End Sub
  8. Private Sub Load_OnFinish()
  9. '结果数据化
  10. Try
  11. '归类
  12. Dim Dict As New Dictionary(Of String, List(Of DlOptiFineListEntry))
  13. Dict.Add("快照版本", New List(Of DlOptiFineListEntry))
  14. For VersionCode As Integer = 30 To 0 Step -1
  15. Dict.Add("1." & VersionCode, New List(Of DlOptiFineListEntry))
  16. Next
  17. For Each Version As DlOptiFineListEntry In DlOptiFineListLoader.Output.Value
  18. If Version.Inherit.StartsWith("1.") Then
  19. Dim MainVersion As String = "1." & Version.NameDisplay.Split(".")(1).Split(" ")(0)
  20. If Dict.ContainsKey(MainVersion) Then
  21. Dict(MainVersion).Add(Version)
  22. Else
  23. Dict("快照版本").Add(Version)
  24. End If
  25. Else
  26. Dict("快照版本").Add(Version)
  27. End If
  28. Next
  29. '清空当前
  30. PanMain.Children.Clear()
  31. '转化为 UI
  32. For Each Pair As KeyValuePair(Of String, List(Of DlOptiFineListEntry)) In Dict
  33. If Pair.Value.Count = 0 Then Continue For
  34. '增加卡片
  35. Dim NewCard As New MyCard With {.Title = Pair.Key & " (" & Pair.Value.Count & ")", .Margin = New Thickness(0, 0, 0, 15), .SwapType = 3}
  36. Dim NewStack As New StackPanel With {.Margin = New Thickness(20, MyCard.SwapedHeight, 18, 0), .VerticalAlignment = VerticalAlignment.Top, .RenderTransform = New TranslateTransform(0, 0), .Tag = Pair.Value}
  37. NewCard.Children.Add(NewStack)
  38. NewCard.SwapControl = NewStack
  39. NewCard.IsSwaped = True
  40. PanMain.Children.Add(NewCard)
  41. Next
  42. Catch ex As Exception
  43. Log(ex, "可视化版本列表出错", LogLevel.Feedback)
  44. End Try
  45. End Sub
  46. Public Sub DownloadStart(sender As MyListItem, e As Object)
  47. McDownloadOptiFine(sender.Tag)
  48. End Sub
  49. Private Sub BtnWeb_Click(sender As Object, e As EventArgs) Handles BtnWeb.Click
  50. OpenWebsite("https://www.optifine.net/")
  51. End Sub
  52. Private Sub BtnChina_Click(sender As Object, e As EventArgs) Handles BtnChina.Click
  53. OpenWebsite("https://optifine.cn/home")
  54. End Sub
  55. End Class