| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709 |
- Public Class PageSetupUI
- Public Shadows IsLoaded As Boolean = False
- Private Sub PageSetupUI_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
- '重复加载部分
- PanBack.ScrollToHome()
- ThemeCheckAll(True)
- If ThemeDontClick <> 0 Then
- Dim NewText As String
- Select Case ThemeDontClick
- Case 1
- NewText = "眼瞎白"
- Case 2
- NewText = "真·滑稽彩"
- Case Else
- NewText = "???"
- End Select
- For Each Control In PanLauncherTheme.Children
- If (TypeOf Control Is MyRadioBox) AndAlso CType(Control, MyRadioBox).IsEnabled Then
- CType(Control, MyRadioBox).Text = NewText
- End If
- Next
- End If
- '非重复加载部分
- If IsLoaded Then Exit Sub
- IsLoaded = True
- AniControlEnabled += 1
- SliderLoad()
- Reload()
- AniControlEnabled -= 1
- #If BETA Then
- PanLauncherHide.Visibility = Visibility.Visible
- #End If
- '设置解锁
- If Not RadioLauncherTheme8.IsEnabled Then LabLauncherTheme8Copy.ToolTip = "累积赞助达到 ¥23.33 后,在爱发电私信发送【解锁码】以解锁。" & vbCrLf & "右键打开赞助页面,如果觉得 PCL 做得还不错就支持一下吧 =w=!"
- RadioLauncherTheme8.ToolTip = "累积赞助达到 ¥23.33 后,在爱发电私信发送【解锁码】以解锁"
- If Not RadioLauncherTheme9.IsEnabled Then LabLauncherTheme9Copy.ToolTip = "· 反馈一个 Bug,在标记为 [完成] 后回复识别码要求解锁(右键打开反馈页面)" & vbCrLf & "· 提交一个 Pull Request,在合并后回复识别码要求解锁"
- RadioLauncherTheme9.ToolTip = "· 反馈一个 Bug,在标记为 [完成] 后回复识别码要求解锁" & vbCrLf & "· 提交一个 Pull Request,在合并后回复识别码要求解锁"
- '极客蓝的处理在 ThemeCheck 中
- End Sub
- Public Sub Reload()
- Try
- '启动器
- SliderLauncherOpacity.Value = Setup.Get("UiLauncherTransparent")
- SliderLauncherHue.Value = Setup.Get("UiLauncherHue")
- SliderLauncherSat.Value = Setup.Get("UiLauncherSat")
- SliderLauncherDelta.Value = Setup.Get("UiLauncherDelta")
- SliderLauncherLight.Value = Setup.Get("UiLauncherLight")
- If Setup.Get("UiLauncherTheme") <= 14 Then CType(FindName("RadioLauncherTheme" & Setup.Get("UiLauncherTheme")), MyRadioBox).Checked = True
- CheckLauncherLogo.Checked = Setup.Get("UiLauncherLogo")
- CheckLauncherEmail.Checked = Setup.Get("UiLauncherEmail")
- '背景图片
- SliderBackgroundOpacity.Value = Setup.Get("UiBackgroundOpacity")
- SliderBackgroundBlur.Value = Setup.Get("UiBackgroundBlur")
- ComboBackgroundSuit.SelectedIndex = Setup.Get("UiBackgroundSuit")
- CheckBackgroundColorful.Checked = Setup.Get("UiBackgroundColorful")
- BackgroundRefresh(False, False)
- '标题栏
- CType(FindName("RadioLogoType" & Setup.Get("UiLogoType")), MyRadioBox).Checked = True
- CheckLogoLeft.Visibility = If(RadioLogoType0.Checked, Visibility.Visible, Visibility.Collapsed)
- PanLogoText.Visibility = If(RadioLogoType2.Checked, Visibility.Visible, Visibility.Collapsed)
- PanLogoChange.Visibility = If(RadioLogoType3.Checked, Visibility.Visible, Visibility.Collapsed)
- TextLogoText.Text = Setup.Get("UiLogoText")
- CheckLogoLeft.Checked = Setup.Get("UiLogoLeft")
- '背景音乐
- CheckMusicRandom.Checked = Setup.Get("UiMusicRandom")
- CheckMusicAuto.Checked = Setup.Get("UiMusicAuto")
- CheckMusicStop.Checked = Setup.Get("UiMusicStop")
- CheckMusicStart.Checked = Setup.Get("UiMusicStart")
- SliderMusicVolume.Value = Setup.Get("UiMusicVolume")
- MusicRefreshUI()
- '主页
- Try
- ComboCustomPreset.SelectedIndex = Setup.Get("UiCustomPreset")
- Catch
- Setup.Reset("UiCustomPreset")
- End Try
- CType(FindName("RadioCustomType" & Setup.Load("UiCustomType")), MyRadioBox).Checked = True
- TextCustomNet.Text = Setup.Get("UiCustomNet")
- '功能隐藏
- CheckHiddenPageDownload.Checked = Setup.Get("UiHiddenPageDownload")
- CheckHiddenPageLink.Checked = Setup.Get("UiHiddenPageLink")
- CheckHiddenPageSetup.Checked = Setup.Get("UiHiddenPageSetup")
- CheckHiddenPageOther.Checked = Setup.Get("UiHiddenPageOther")
- CheckHiddenFunctionSelect.Checked = Setup.Get("UiHiddenFunctionSelect")
- CheckHiddenFunctionHidden.Checked = Setup.Get("UiHiddenFunctionHidden")
- CheckHiddenSetupLaunch.Checked = Setup.Get("UiHiddenSetupLaunch")
- CheckHiddenSetupUI.Checked = Setup.Get("UiHiddenSetupUi")
- CheckHiddenSetupLink.Checked = Setup.Get("UiHiddenSetupLink")
- CheckHiddenSetupSystem.Checked = Setup.Get("UiHiddenSetupSystem")
- CheckHiddenOtherAbout.Checked = Setup.Get("UiHiddenOtherAbout")
- CheckHiddenOtherFeedback.Checked = Setup.Get("UiHiddenOtherFeedback")
- CheckHiddenOtherVote.Checked = Setup.Get("UiHiddenOtherVote")
- CheckHiddenOtherHelp.Checked = Setup.Get("UiHiddenOtherHelp")
- CheckHiddenOtherTest.Checked = Setup.Get("UiHiddenOtherTest")
- Catch ex As NullReferenceException
- Log(ex, "个性化设置项存在异常,已被自动重置", LogLevel.Msgbox)
- Reset()
- Catch ex As Exception
- Log(ex, "重载个性化设置时出错", LogLevel.Feedback)
- End Try
- End Sub
- '初始化
- Public Sub Reset()
- Try
- Setup.Reset("UiLauncherTransparent")
- Setup.Reset("UiLauncherTheme")
- Setup.Reset("UiLauncherLogo")
- Setup.Reset("UiLauncherHue")
- Setup.Reset("UiLauncherSat")
- Setup.Reset("UiLauncherDelta")
- Setup.Reset("UiLauncherLight")
- Setup.Reset("UiLauncherEmail")
- Setup.Reset("UiBackgroundColorful")
- Setup.Reset("UiBackgroundOpacity")
- Setup.Reset("UiBackgroundBlur")
- Setup.Reset("UiBackgroundSuit")
- Setup.Reset("UiLogoType")
- Setup.Reset("UiLogoText")
- Setup.Reset("UiLogoLeft")
- Setup.Reset("UiMusicVolume")
- Setup.Reset("UiMusicStop")
- Setup.Reset("UiMusicStart")
- Setup.Reset("UiMusicRandom")
- Setup.Reset("UiMusicAuto")
- Setup.Reset("UiCustomType")
- Setup.Reset("UiCustomPreset")
- Setup.Reset("UiCustomNet")
- Setup.Reset("UiHiddenPageDownload")
- Setup.Reset("UiHiddenPageLink")
- Setup.Reset("UiHiddenPageSetup")
- Setup.Reset("UiHiddenPageOther")
- Setup.Reset("UiHiddenFunctionSelect")
- Setup.Reset("UiHiddenFunctionHidden")
- Setup.Reset("UiHiddenSetupLaunch")
- Setup.Reset("UiHiddenSetupUi")
- Setup.Reset("UiHiddenSetupLink")
- Setup.Reset("UiHiddenSetupSystem")
- Setup.Reset("UiHiddenOtherAbout")
- Setup.Reset("UiHiddenOtherFeedback")
- Setup.Reset("UiHiddenOtherVote")
- Setup.Reset("UiHiddenOtherHelp")
- Setup.Reset("UiHiddenOtherTest")
- Log("[Setup] 已初始化个性化设置!")
- Hint("已初始化个性化设置", HintType.Finish, False)
- Catch ex As Exception
- Log(ex, "初始化个性化设置失败", LogLevel.Msgbox)
- End Try
- Reload()
- End Sub
- '将控件改变路由到设置改变
- Private Shared Sub SliderChange(sender As MySlider, e As Object) Handles SliderBackgroundOpacity.Change, SliderBackgroundBlur.Change, SliderLauncherOpacity.Change, SliderMusicVolume.Change, SliderLauncherHue.Change, SliderLauncherLight.Change, SliderLauncherSat.Change, SliderLauncherDelta.Change
- If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Value)
- End Sub
- Private Shared Sub ComboChange(sender As MyComboBox, e As Object) Handles ComboBackgroundSuit.SelectionChanged, ComboCustomPreset.SelectionChanged
- If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.SelectedIndex)
- End Sub
- Private Shared Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckMusicStop.Change, CheckMusicRandom.Change, CheckMusicAuto.Change, CheckBackgroundColorful.Change, CheckLogoLeft.Change, CheckLauncherLogo.Change, CheckHiddenFunctionHidden.Change, CheckHiddenFunctionSelect.Change, CheckHiddenPageDownload.Change, CheckHiddenPageLink.Change, CheckHiddenPageOther.Change, CheckHiddenPageSetup.Change, CheckHiddenSetupLaunch.Change, CheckHiddenSetupSystem.Change, CheckHiddenSetupLink.Change, CheckHiddenSetupUI.Change, CheckHiddenOtherAbout.Change, CheckHiddenOtherFeedback.Change, CheckHiddenOtherVote.Change, CheckHiddenOtherHelp.Change, CheckHiddenOtherTest.Change, CheckMusicStart.Change, CheckLauncherEmail.Change
- If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked)
- End Sub
- Private Shared Sub TextBoxChange(sender As MyTextBox, e As Object) Handles TextLogoText.ValidatedTextChanged, TextCustomNet.ValidatedTextChanged
- If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Text)
- End Sub
- Private Shared Sub RadioBoxChange(sender As MyRadioBox, e As Object) Handles RadioLogoType0.Check, RadioLogoType1.Check, RadioLogoType2.Check, RadioLogoType3.Check, RadioLauncherTheme0.Check, RadioLauncherTheme1.Check, RadioLauncherTheme2.Check, RadioLauncherTheme3.Check, RadioLauncherTheme4.Check, RadioLauncherTheme5.Check, RadioLauncherTheme6.Check, RadioLauncherTheme7.Check, RadioLauncherTheme8.Check, RadioLauncherTheme9.Check, RadioLauncherTheme10.Check, RadioLauncherTheme11.Check, RadioLauncherTheme12.Check, RadioLauncherTheme13.Check, RadioLauncherTheme14.Check, RadioCustomType0.Check, RadioCustomType1.Check, RadioCustomType2.Check, RadioCustomType3.Check
- If AniControlEnabled = 0 Then Setup.Set(sender.Tag.ToString.Split("/")(0), Val(sender.Tag.ToString.Split("/")(1)))
- End Sub
- '背景图片
- Private Sub BtnUIBgOpen_Click(sender As Object, e As EventArgs) Handles BtnBackgroundOpen.Click
- OpenExplorer("""" & Path & "PCL\Pictures""")
- End Sub
- Private Sub BtnBackgroundRefresh_Click(sender As Object, e As EventArgs) Handles BtnBackgroundRefresh.Click
- BackgroundRefresh(True, True)
- End Sub
- Public Sub BackgroundRefreshUI(Show As Boolean, Count As Integer)
- If IsNothing(PanBackgroundOpacity) Then Exit Sub
- If Show Then
- PanBackgroundOpacity.Visibility = Visibility.Visible
- PanBackgroundBlur.Visibility = Visibility.Visible
- PanBackgroundSuit.Visibility = Visibility.Visible
- BtnBackgroundClear.Visibility = Visibility.Visible
- CardBackground.Title = "背景图片(" & Count & " 张)"
- Else
- PanBackgroundOpacity.Visibility = Visibility.Collapsed
- PanBackgroundBlur.Visibility = Visibility.Collapsed
- PanBackgroundSuit.Visibility = Visibility.Collapsed
- BtnBackgroundClear.Visibility = Visibility.Collapsed
- CardBackground.Title = "背景图片"
- End If
- CardBackground.TriggerForceResize()
- End Sub
- Private Sub BtnBackgroundClear_Click(sender As Object, e As EventArgs) Handles BtnBackgroundClear.Click
- If MyMsgBox("即将删除背景图片文件夹中的所有文件。" & vbCrLf & "此操作不可撤销,是否确定?", "警告",, "取消", IsWarn:=True) = 1 Then
- DeleteDirectory(Path & "PCL\Pictures")
- BackgroundRefresh(False, True)
- Hint("背景图片已清空!", HintType.Finish)
- End If
- End Sub
- ''' <summary>
- ''' 刷新背景图片及设置页 UI。
- ''' </summary>
- ''' <param name="IsHint">是否显示刷新提示。</param>
- ''' <param name="Refresh">是否刷新图片显示。</param>
- Public Shared Sub BackgroundRefresh(IsHint As Boolean, Refresh As Boolean)
- Try
- '获取可用的图片文件
- Directory.CreateDirectory(Path & "PCL\Pictures\")
- Dim Pic As New List(Of String)
- For Each File In EnumerateFiles(Path & "PCL\Pictures\")
- If File.Extension.ToLower <> ".ini" AndAlso File.Extension.ToLower <> ".db" Then '文件夹可能会被加入 .ini 和 thumbs.db
- Pic.Add(File.FullName)
- End If
- Next
- '加载
- If Not Pic.Any() Then
- If Refresh Then
- If FrmMain.ImgBack.Visibility = Visibility.Collapsed Then
- If IsHint Then Hint("未检测到可用背景图片!", HintType.Critical)
- Else
- FrmMain.ImgBack.Visibility = Visibility.Collapsed
- If IsHint Then Hint("背景图片已清除!", HintType.Finish)
- End If
- End If
- If Not IsNothing(FrmSetupUI) Then FrmSetupUI.BackgroundRefreshUI(False, 0)
- Else
- If Refresh Then
- Dim Address As String = RandomOne(Pic)
- Try
- Log("[UI] 加载背景图片:" & Address)
- FrmMain.ImgBack.Background = New MyBitmap(Address)
- Setup.Load("UiBackgroundSuit", True)
- FrmMain.ImgBack.Visibility = Visibility.Visible
- If IsHint Then Hint("背景图片已刷新:" & GetFileNameFromPath(Address), HintType.Finish, False)
- Catch ex As Exception
- If ex.Message.Contains("参数无效") Then
- Log("刷新背景图片失败,该图片文件可能并非标准格式。" & vbCrLf &
- "你可以尝试使用画图打开该文件并重新保存,这会让图片变为标准格式。" & vbCrLf &
- "文件:" & Address, LogLevel.Msgbox)
- Else
- Log(ex, "刷新背景图片失败(" & Address & ")", LogLevel.Msgbox)
- End If
- End Try
- End If
- If Not IsNothing(FrmSetupUI) Then FrmSetupUI.BackgroundRefreshUI(True, Pic.Count)
- End If
- Catch ex As Exception
- Log(ex, "刷新背景图片时出现未知错误", LogLevel.Feedback)
- End Try
- End Sub
- '顶部栏
- Private Sub BtnLogoChange_Click(sender As Object, e As EventArgs) Handles BtnLogoChange.Click
- Dim FileName As String = SelectFile("常用图片文件(*.png;*.jpg;*.gif)|*.png;*.jpg;*.gif", "选择图片")
- If FileName = "" Then Exit Sub
- Try
- '拷贝文件
- File.Delete(Path & "PCL\Logo.png")
- CopyFile(FileName, Path & "PCL\Logo.png")
- '设置当前显示
- FrmMain.ImageTitleLogo.Source = New MyBitmap(Path & "PCL\Logo.png")
- Catch ex As Exception
- If ex.Message.Contains("参数无效") Then
- Log("改变标题栏图片失败,该图片文件可能并非标准格式。" & vbCrLf &
- "你可以尝试使用画图打开该文件并重新保存,这会让图片变为标准格式。", LogLevel.Msgbox)
- Else
- Log(ex, "设置标题栏图片失败", LogLevel.Msgbox)
- End If
- FrmMain.ImageTitleLogo.Source = Nothing
- End Try
- End Sub
- Private Sub RadioLogoType3_Check(sender As Object, e As RouteEventArgs) Handles RadioLogoType3.PreviewCheck
- If Not (AniControlEnabled = 0 AndAlso e.RaiseByMouse) Then Exit Sub
- Refresh:
- '已有图片则不再选择
- If File.Exists(Path & "PCL\Logo.png") Then
- Try
- FrmMain.ImageTitleLogo.Source = New MyBitmap(Path & "PCL\Logo.png")
- Catch ex As Exception
- If ex.Message.Contains("参数无效") Then
- Log("调整标题栏图片失败,该图片文件可能并非标准格式。" & vbCrLf &
- "你可以尝试使用画图打开该文件并重新保存,这会让图片变为标准格式。", LogLevel.Msgbox)
- Else
- Log(ex, "调整标题栏图片失败", LogLevel.Msgbox)
- End If
- FrmMain.ImageTitleLogo.Source = Nothing
- e.Handled = True
- Try
- File.Delete(Path & "PCL\Logo.png")
- Catch exx As Exception
- Log(exx, "清理错误的标题栏图片失败", LogLevel.Msgbox)
- End Try
- End Try
- Exit Sub
- End If
- '没有图片则要求选择
- Dim FileName As String = SelectFile("常用图片文件(*.png;*.jpg;*.gif)|*.png;*.jpg;*.gif", "选择图片")
- If FileName = "" Then
- FrmMain.ImageTitleLogo.Source = Nothing
- e.Handled = True
- Else
- Try
- '拷贝文件
- File.Delete(Path & "PCL\Logo.png")
- CopyFile(FileName, Path & "PCL\Logo.png")
- GoTo Refresh
- Catch ex As Exception
- Log(ex, "复制标题栏图片失败", LogLevel.Msgbox)
- End Try
- End If
- End Sub
- Private Sub BtnLogoDelete_Click(sender As Object, e As EventArgs) Handles BtnLogoDelete.Click
- Try
- File.Delete(Path & "PCL\Logo.png")
- RadioLogoType1.SetChecked(True, True, True)
- Hint("标题栏图片已清空!", HintType.Finish)
- Catch ex As Exception
- Log(ex, "清空标题栏图片失败", LogLevel.Msgbox)
- End Try
- End Sub
- '背景音乐
- Private Sub BtnMusicOpen_Click(sender As Object, e As EventArgs) Handles BtnMusicOpen.Click
- OpenExplorer("""" & Path & "PCL\Musics""")
- End Sub
- Private Sub BtnMusicRefresh_Click(sender As Object, e As EventArgs) Handles BtnMusicRefresh.Click
- MusicRefreshPlay(True)
- End Sub
- Public Sub MusicRefreshUI()
- If PanBackgroundOpacity Is Nothing Then Exit Sub
- If MusicAllList.Any Then
- PanMusicVolume.Visibility = Visibility.Visible
- PanMusicDetail.Visibility = Visibility.Visible
- BtnMusicClear.Visibility = Visibility.Visible
- CardMusic.Title = "背景音乐(" & EnumerateFiles(Path & "PCL\Musics\").Count & " 首)"
- Else
- PanMusicVolume.Visibility = Visibility.Collapsed
- PanMusicDetail.Visibility = Visibility.Collapsed
- BtnMusicClear.Visibility = Visibility.Collapsed
- CardMusic.Title = "背景音乐"
- End If
- CardMusic.TriggerForceResize()
- End Sub
- Private Sub BtnMusicClear_Click(sender As Object, e As EventArgs) Handles BtnMusicClear.Click
- If MyMsgBox("即将删除背景音乐文件夹中的所有文件。" & vbCrLf & "此操作不可撤销,是否确定?", "警告",, "取消", IsWarn:=True) = 1 Then
- RunInThread(Sub()
- Hint("正在删除背景音乐……")
- '停止播放音乐
- MusicNAudio = Nothing
- MusicWaitingList = New List(Of String)
- MusicAllList = New List(Of String)
- Thread.Sleep(200)
- '删除文件
- Try
- DeleteDirectory(Path & "PCL\Musics")
- Hint("背景音乐已删除!", HintType.Finish)
- Catch ex As Exception
- Log(ex, "删除背景音乐失败", LogLevel.Msgbox)
- End Try
- Try
- Directory.CreateDirectory(Path & "PCL\Musics")
- RunInUi(Sub() MusicRefreshPlay(False))
- Catch ex As Exception
- Log(ex, "重建背景音乐文件夹失败", LogLevel.Msgbox)
- End Try
- End Sub)
- End If
- End Sub
- Private Sub CheckMusicStart_Change() Handles CheckMusicStart.Change
- If AniControlEnabled <> 0 Then Exit Sub
- If CheckMusicStart.Checked Then CheckMusicStop.Checked = False
- End Sub
- Private Sub CheckMusicStop_Change() Handles CheckMusicStop.Change
- If AniControlEnabled <> 0 Then Exit Sub
- If CheckMusicStop.Checked Then CheckMusicStart.Checked = False
- End Sub
- '主页
- Private Sub BtnCustomFile_Click(sender As Object, e As EventArgs) Handles BtnCustomFile.Click
- Try
- If File.Exists(Path & "PCL\Custom.xaml") Then
- If MyMsgBox("当前已存在布局文件,继续生成教学文件将会覆盖现有布局文件!", "覆盖确认", "继续", "取消", IsWarn:=True) = 2 Then Exit Sub
- End If
- WriteFile(Path & "PCL\Custom.xaml", GetResources("Custom"))
- Hint("教学文件已生成!", HintType.Finish)
- OpenExplorer("/select,""" & Path & "PCL\Custom.xaml""")
- Catch ex As Exception
- Log(ex, "生成教学文件失败", LogLevel.Feedback)
- End Try
- End Sub
- Private Sub BtnCustomRefresh_Click() Handles BtnCustomRefresh.Click
- FrmLaunchRight.ForceRefresh()
- Hint("已刷新主页!", HintType.Finish)
- End Sub
- Private Sub BtnCustomTutorial_Click(sender As Object, e As EventArgs) Handles BtnCustomTutorial.Click
- MyMsgBox("1. 点击 生成教学文件 按钮,这会在 PCL 文件夹下生成 Custom.xaml 布局文件。" & vbCrLf &
- "2. 使用记事本等工具打开这个文件并进行修改,修改完记得保存。" & vbCrLf &
- "3. 点击 刷新主页 按钮,查看主页现在长啥样了。" & vbCrLf &
- vbCrLf &
- "你可以在生成教学文件后直接刷新主页,对照着进行修改,更有助于理解。" & vbCrLf &
- "直接将自定义主页文件拖进 PCL 窗口也可以快捷加载。", "主页自定义教程")
- End Sub
- '主题
- Private Sub LabLauncherTheme5Unlock_MouseLeftButtonUp(sender As Object, e As MouseButtonEventArgs) Handles LabLauncherTheme5Unlock.MouseLeftButtonUp
- RadioLauncherTheme5Gray.Opacity -= 0.23
- RadioLauncherTheme5.Opacity += 0.23
- AniStart({
- AaOpacity(RadioLauncherTheme5Gray, 1, 1000),
- AaOpacity(RadioLauncherTheme5, -1, 1000)
- }, "ThemeUnlock")
- If RadioLauncherTheme5Gray.Opacity < 0.08 Then
- ThemeUnlock(5, UnlockHint:="隐藏主题 玄素黑 已解锁!")
- AniStop("ThemeUnlock")
- RadioLauncherTheme5.Checked = True
- End If
- End Sub
- Private Sub LabLauncherTheme11Click_MouseLeftButtonUp() Handles LabLauncherTheme11Click.MouseLeftButtonUp, RadioLauncherTheme11.MouseRightButtonUp
- If LabLauncherTheme11Click.Visibility = Visibility.Collapsed OrElse LabLauncherTheme11Click.ToolTip.ToString.Contains("点击") Then
- If MyMsgBox(
- "1. 不爬取或攻击相关服务或网站,不盗取相关账号,没有谜题可以或需要以此来解决。" & vbCrLf &
- "2. 不得篡改或损毁相关公开信息,请尽量让它们保持原状。" & vbCrLf &
- "3. 在你感到迷茫的时候,看看回声洞可能会给你带来惊喜。" & vbCrLf & vbCrLf &
- "若违规,可能会被从任意相关群中踢出!",
- "解密游戏的基本规则", "我知道了", "恕我拒绝") = 1 Then
- MyMsgBox("你需要用自己的智慧来找到下一步的线索……" & vbCrLf &
- "初始线索:gnp.dorC61\60\20\0202\moc.x1xa.2s\\:sp" & "T".ToLower & "th", "解密游戏") '防止触发病毒检测规则
- End If
- End If
- End Sub
- Private Sub LabLauncherTheme8Copy_MouseRightButtonUp() Handles LabLauncherTheme8Copy.MouseRightButtonUp
- OpenWebsite("https://afdian.net/a/LTCat")
- End Sub
- Private Sub LabLauncherTheme9Copy_MouseRightButtonUp() Handles LabLauncherTheme9Copy.MouseRightButtonUp
- PageOtherLeft.TryFeedback()
- End Sub
- '主题自定义
- Private Sub RadioLauncherTheme14_Change(sender As Object, e As RouteEventArgs) Handles RadioLauncherTheme14.Changed
- If RadioLauncherTheme14.Checked Then
- If LabLauncherHue.Visibility = Visibility.Visible Then Exit Sub
- LabLauncherHue.Visibility = Visibility.Visible
- SliderLauncherHue.Visibility = Visibility.Visible
- LabLauncherSat.Visibility = Visibility.Visible
- SliderLauncherSat.Visibility = Visibility.Visible
- LabLauncherDelta.Visibility = Visibility.Visible
- SliderLauncherDelta.Visibility = Visibility.Visible
- LabLauncherLight.Visibility = Visibility.Visible
- SliderLauncherLight.Visibility = Visibility.Visible
- Else
- If LabLauncherHue.Visibility = Visibility.Collapsed Then Exit Sub
- LabLauncherHue.Visibility = Visibility.Collapsed
- SliderLauncherHue.Visibility = Visibility.Collapsed
- LabLauncherSat.Visibility = Visibility.Collapsed
- SliderLauncherSat.Visibility = Visibility.Collapsed
- LabLauncherDelta.Visibility = Visibility.Collapsed
- SliderLauncherDelta.Visibility = Visibility.Collapsed
- LabLauncherLight.Visibility = Visibility.Collapsed
- SliderLauncherLight.Visibility = Visibility.Collapsed
- End If
- CardLauncher.TriggerForceResize()
- End Sub
- Private Sub HSL_Change() Handles SliderLauncherHue.Change, SliderLauncherLight.Change, SliderLauncherSat.Change, SliderLauncherDelta.Change
- If AniControlEnabled <> 0 OrElse SliderLauncherSat Is Nothing OrElse Not SliderLauncherSat.IsLoaded Then Exit Sub
- ThemeRefresh()
- End Sub
- #Region "功能隐藏"
- Private Shared _HiddenForceShow As Boolean = False
- ''' <summary>
- ''' 是否强制显示被禁用的功能。
- ''' </summary>
- Public Shared Property HiddenForceShow As Boolean
- Get
- Return _HiddenForceShow
- End Get
- Set(value As Boolean)
- _HiddenForceShow = value
- HiddenRefresh()
- End Set
- End Property
- ''' <summary>
- ''' 更新功能隐藏带来的显示变化。
- ''' </summary>
- Public Shared Sub HiddenRefresh() Handles Me.Loaded
- If FrmMain.PanTitleSelect Is Nothing OrElse Not FrmMain.PanTitleSelect.IsLoaded Then Exit Sub
- Try
- '顶部栏
- If Not HiddenForceShow AndAlso Setup.Get("UiHiddenPageDownload") AndAlso Setup.Get("UiHiddenPageLink") AndAlso Setup.Get("UiHiddenPageSetup") AndAlso Setup.Get("UiHiddenPageOther") Then
- '顶部栏已被全部隐藏
- FrmMain.PanTitleSelect.Visibility = Visibility.Collapsed
- Else
- '顶部栏未被全部隐藏
- FrmMain.PanTitleSelect.Visibility = Visibility.Visible
- FrmMain.BtnTitleSelect1.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenPageDownload"), Visibility.Collapsed, Visibility.Visible)
- FrmMain.BtnTitleSelect2.Visibility = Visibility.Collapsed 'If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenPageLink"), Visibility.Collapsed, Visibility.Visible)
- FrmMain.BtnTitleSelect3.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenPageSetup"), Visibility.Collapsed, Visibility.Visible)
- FrmMain.BtnTitleSelect4.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenPageOther"), Visibility.Collapsed, Visibility.Visible)
- End If
- '功能
- FrmLaunchLeft.RefreshButtonsUI()
- If FrmSetupUI IsNot Nothing Then
- FrmSetupUI.CardSwitch.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenFunctionHidden"), Visibility.Collapsed, Visibility.Visible)
- End If
- '设置子页面
- If FrmSetupLeft IsNot Nothing Then
- FrmSetupLeft.ItemLaunch.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenSetupLaunch"), Visibility.Collapsed, Visibility.Visible)
- FrmSetupLeft.ItemUI.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenSetupUi"), Visibility.Collapsed, Visibility.Visible)
- FrmSetupLeft.ItemLink.Visibility = Visibility.Collapsed 'If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenSetupLink"), Visibility.Collapsed, Visibility.Visible)
- FrmSetupLeft.ItemSystem.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenSetupSystem"), Visibility.Collapsed, Visibility.Visible)
- '隐藏左边选择卡
- Dim AvaliableCount As Integer = 0
- If Not Setup.Get("UiHiddenSetupLaunch") Then AvaliableCount += 1
- If Not Setup.Get("UiHiddenSetupUi") Then AvaliableCount += 1
- If Not Setup.Get("UiHiddenSetupLink") Then AvaliableCount += 1
- If Not Setup.Get("UiHiddenSetupSystem") Then AvaliableCount += 1
- FrmSetupLeft.PanItem.Visibility = If(AvaliableCount < 2 AndAlso Not HiddenForceShow, Visibility.Collapsed, Visibility.Visible)
- End If
- '更多子页面
- Dim OtherAvaliableCount As Integer = 0
- If Not Setup.Get("UiHiddenOtherHelp") Then OtherAvaliableCount += 1
- If Not Setup.Get("UiHiddenOtherAbout") Then OtherAvaliableCount += 1
- If Not Setup.Get("UiHiddenOtherTest") Then OtherAvaliableCount += 1
- If Not Setup.Get("UiHiddenOtherFeedback") Then OtherAvaliableCount += 1
- If Not Setup.Get("UiHiddenOtherVote") Then OtherAvaliableCount += 1
- If FrmOtherLeft IsNot Nothing Then
- FrmOtherLeft.ItemHelp.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenOtherHelp"), Visibility.Collapsed, Visibility.Visible)
- FrmOtherLeft.ItemFeedback.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenOtherFeedback"), Visibility.Collapsed, Visibility.Visible)
- FrmOtherLeft.ItemVote.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenOtherVote"), Visibility.Collapsed, Visibility.Visible)
- FrmOtherLeft.ItemAbout.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenOtherAbout"), Visibility.Collapsed, Visibility.Visible)
- FrmOtherLeft.ItemTest.Visibility = If(Not HiddenForceShow AndAlso Setup.Get("UiHiddenOtherTest"), Visibility.Collapsed, Visibility.Visible)
- '隐藏左边选择卡
- FrmOtherLeft.PanItem.Visibility = If(OtherAvaliableCount < 2 AndAlso Not HiddenForceShow, Visibility.Collapsed, Visibility.Visible)
- End If
- If OtherAvaliableCount = 1 AndAlso Not HiddenForceShow Then
- If Not Setup.Get("UiHiddenOtherHelp") Then
- FrmMain.BtnTitleSelect4.Text = "帮助"
- ElseIf Not Setup.Get("UiHiddenOtherAbout") Then
- FrmMain.BtnTitleSelect4.Text = "关于"
- Else
- FrmMain.BtnTitleSelect4.Text = "百宝箱"
- End If
- Else
- FrmMain.BtnTitleSelect4.Text = "更多"
- End If
- '各个页面的入口
- If FrmMain.PageCurrent = FormMain.PageType.VersionSelect Then FrmSelectRight.BtnEmptyDownload_Loaded()
- If FrmMain.PageCurrent = FormMain.PageType.Launch Then FrmLaunchLeft.RefreshButtonsUI()
- If FrmMain.PageCurrent = FormMain.PageType.VersionSetup AndAlso FrmVersionModDisabled IsNot Nothing Then FrmVersionModDisabled.BtnDownload_Loaded()
- '备注
- If FrmSetupUI IsNot Nothing Then FrmSetupUI.CardSwitch.Title = If(HiddenForceShow, "功能隐藏(已暂时关闭,按 F12 以重新启用)", "功能隐藏")
- Catch ex As Exception
- Log(ex, "刷新功能隐藏项目失败", LogLevel.Feedback)
- End Try
- End Sub
- 'UI 协同改变
- Private Sub HiddenSetupMain() Handles CheckHiddenPageSetup.Change
- '设置主页面
- If CheckHiddenPageSetup.Checked Then
- '开启
- CheckHiddenSetupLaunch.Checked = True
- CheckHiddenSetupSystem.Checked = True
- CheckHiddenSetupLink.Checked = True
- CheckHiddenSetupUI.Checked = True
- Else
- '关闭
- If Setup.Get("UiHiddenSetupLaunch") AndAlso Setup.Get("UiHiddenSetupUi") AndAlso Setup.Get("UiHiddenSetupSystem") AndAlso Setup.Get("UiHiddenSetupLink") Then
- CheckHiddenSetupLaunch.Checked = False
- CheckHiddenSetupSystem.Checked = False
- CheckHiddenSetupLink.Checked = False
- CheckHiddenSetupUI.Checked = False
- End If
- End If
- End Sub
- Private Sub HiddenSetupSub() Handles CheckHiddenSetupLaunch.Change, CheckHiddenSetupSystem.Change, CheckHiddenSetupLink.Change, CheckHiddenSetupUI.Change
- '设置子页面
- If Setup.Get("UiHiddenSetupLaunch") AndAlso Setup.Get("UiHiddenSetupUi") AndAlso Setup.Get("UiHiddenSetupSystem") AndAlso Setup.Get("UiHiddenSetupLink") Then
- '已被全部隐藏
- CheckHiddenPageSetup.Checked = True
- Else
- '未被全部隐藏
- CheckHiddenPageSetup.Checked = False
- End If
- End Sub
- Private Sub HiddenOtherMain() Handles CheckHiddenPageOther.Change
- '更多主页面
- If CheckHiddenPageOther.Checked Then
- '开启
- CheckHiddenOtherAbout.Checked = True
- CheckHiddenOtherTest.Checked = True
- CheckHiddenOtherFeedback.Checked = True
- CheckHiddenOtherVote.Checked = True
- CheckHiddenOtherHelp.Checked = True
- Else
- '关闭
- If Setup.Get("UiHiddenOtherHelp") AndAlso Setup.Get("UiHiddenOtherAbout") AndAlso Setup.Get("UiHiddenOtherTest") AndAlso
- Setup.Get("UiHiddenOtherVote") AndAlso Setup.Get("UiHiddenOtherFeedback") Then
- CheckHiddenOtherAbout.Checked = False
- CheckHiddenOtherTest.Checked = False
- CheckHiddenOtherFeedback.Checked = False
- CheckHiddenOtherVote.Checked = False
- CheckHiddenOtherHelp.Checked = False
- End If
- End If
- End Sub
- Private Sub HiddenOtherSub(sender As Object, user As Boolean) Handles CheckHiddenOtherHelp.Change, CheckHiddenOtherAbout.Change, CheckHiddenOtherTest.Change
- '更多子页面(有具体内容的)
- If Setup.Get("UiHiddenOtherHelp") AndAlso Setup.Get("UiHiddenOtherAbout") AndAlso Setup.Get("UiHiddenOtherTest") Then
- '已被全部隐藏
- CheckHiddenPageOther.Checked = True
- Else
- '未被全部隐藏
- CheckHiddenPageOther.Checked = False
- End If
- '修改无具体内容的项
- If Not user Then Exit Sub
- If Setup.Get("UiHiddenOtherHelp") AndAlso Setup.Get("UiHiddenOtherAbout") AndAlso Setup.Get("UiHiddenOtherTest") Then
- CheckHiddenOtherFeedback.Checked = True
- CheckHiddenOtherVote.Checked = True
- End If
- End Sub
- Private Sub HiddenOtherNet(sender As Object, user As Boolean) Handles CheckHiddenOtherFeedback.Change, CheckHiddenOtherVote.Change
- '更多子页面(无具体内容的)
- If Not user Then Exit Sub
- If Setup.Get("UiHiddenOtherHelp") AndAlso Setup.Get("UiHiddenOtherAbout") AndAlso Setup.Get("UiHiddenOtherTest") AndAlso
- (Not Setup.Get("UiHiddenOtherFeedback") OrElse Not Setup.Get("UiHiddenOtherVote")) Then
- CheckHiddenOtherAbout.Checked = False
- CheckHiddenOtherTest.Checked = False
- CheckHiddenOtherHelp.Checked = False
- End If
- End Sub
- '警告提示
- Private Sub HiddenHint(sender As Object, user As Boolean) Handles CheckHiddenFunctionHidden.Change, CheckHiddenPageSetup.Change, CheckHiddenSetupUI.Change
- If AniControlEnabled = 0 AndAlso sender.Checked Then Hint("按 F12 即可暂时关闭功能隐藏设置。千万别忘了,要不然设置就改不回来了……")
- End Sub
- #End Region
- '公开预览版
- Private Sub BtnLauncherDonate_Click(sender As Object, e As EventArgs) Handles BtnLauncherDonate.Click
- OpenWebsite("https://afdian.net/a/LTCat")
- End Sub
- '滑动条
- Private Sub SliderLoad()
- SliderMusicVolume.GetHintText = Function(Value As Integer)
- Return Math.Ceiling(Value * 0.1) & "%"
- End Function
- SliderLauncherOpacity.GetHintText = Function(Value As Integer)
- Return Math.Round(40 + Value * 0.1) & "%"
- End Function
- SliderLauncherHue.GetHintText = Function(Value As Integer)
- Return Value & "°"
- End Function
- SliderLauncherSat.GetHintText = Function(Value As Integer)
- Return Value & "%"
- End Function
- SliderLauncherDelta.GetHintText = Function(Value As Integer)
- If Value > 90 Then
- Return "+" & (Value - 90)
- ElseIf Value = 90 Then
- Return 0
- Else
- Return Value - 90
- End If
- End Function
- SliderLauncherLight.GetHintText = Function(Value As Integer)
- If Value > 20 Then
- Return "+" & (Value - 20)
- ElseIf Value = 20 Then
- Return 0
- Else
- Return Value - 20
- End If
- End Function
- SliderBackgroundOpacity.GetHintText = Function(Value As Integer)
- Return Math.Round(Value * 0.1) & "%"
- End Function
- SliderBackgroundBlur.GetHintText = Function(Value As Integer)
- Return Value & " 像素"
- End Function
- End Sub
- End Class
|