PCL2樣式自定義


PCL\Custom.xaml


<!-- 這是 PCL2 的主頁自定義文件。你可以通過修改這個文件來自定義 PCL2 主頁:添加文本、打開網頁、啟動游戲,等等。
     如果你倒騰這個文件把 PCL2 玩炸了,把這個文件直接刪除就行了。
     如果你懂得 WPF 的布局文件編寫,你甚至可以做出不少的新玩意兒…… -->

<local:MyCard Title="基礎教學 1:純文本" Margin="0,0,0,15">
    <StackPanel Margin="25,40,23,15">
        <TextBlock TextWrapping="Wrap" Margin="0,0,0,4"
                   Text="每個 local:MyCard 代表一張卡片,你可以添加、刪除格式類似的 MyCard 來添加多個卡片。每個 TextBlock 代表一段文本,你可以在 Text 中書寫任何你想寫的內容。你也可以自行添加更多的 TextBlock。" />
        <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" Foreground="#8C7721"
                   Text="你可以通過添加、刪除屬性修改樣式,例如上面的 Foreground 會修改字體顏色。" />
        <TextBlock TextWrapping="Wrap" Margin="20,5,20,0" FontSize="11"
                   Text="它還有許多可以調整的屬性:Margin 調整邊距,FontSize 調整字號,TextWrapping 則是啟用自動換行。" />
    </StackPanel>
</local:MyCard>

<local:MyCard Title="基礎教學 2:卡片屬性、提示條" Margin="0,0,0,15" CanSwap="True" IsSwaped="True">
    <StackPanel Margin="25,40,23,15">
        <local:MyHint Text="local:MyHint 代表提示條,它默認是警告樣式。" />
        <local:MyHint Margin="0,8,0,2" IsWarn="False"
                   Text="將提示條的 IsWarn 屬性改為 False 即可改為提示樣式。&#xA;使用左邊的那堆字符可以在任意地方手動換行,如果需要使用等號、引號等特殊字符,可以自行百度 XAML 轉義字符。" />
        <TextBlock TextWrapping="Wrap" Margin="0,6,0,0"
                   Text="卡片(local:MyCard)的 Title 屬性決定了它的標題。&#xA;為卡片添加 CanSwap 屬性讓它可以被折疊,True 代表是,False 代表否。在此基礎上,再使用 IsSwaped 屬性調整它是否默認被折疊。" />
   </StackPanel>
</local:MyCard>

<local:MyCard Title="基礎教學 3:長寬屬性、圖片" Margin="0,0,0,15">
    <StackPanel Margin="25,40,23,15">
        <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" Width="320" HorizontalAlignment="Right"
                   Text="任意項目都可以添加 Width 與 Height 控制寬高,此外通過 HorizontalAlignment 來控制對齊:Center 代表居中,Right 代表居右。例如這段文本就被居右了。" />
        <TextBlock TextWrapping="Wrap" Margin="0,0,0,6"
                   Text="Image 代表圖片,你需要在它的 Source 屬性中填寫一個網址或文件路徑,它會從該處獲取圖片並顯示。你通常也需要用 Height 限制它的高度。" />
        <Image Height="50" HorizontalAlignment="Center" Source="https://www.mcbbs.net/template/mcbbs/image/logo_sc.png" />
    </StackPanel>
</local:MyCard>

<local:MyCard Title="按鈕教學 1:基礎" Margin="0,0,0,15">
    <StackPanel Margin="25,40,23,15">
        <TextBlock TextWrapping="Wrap" Margin="0,0,0,4"
                   Text="你可以通過添加 local:MyButton 來新建一個按鈕。你需要通過上一張卡片中提到的寬高屬性來限定它的尺寸與位置,通過 Padding 屬性控制它的內邊距。" />
        <TextBlock TextWrapping="Wrap" Margin="0,0,0,10"
                   Text="按鈕可以做到很多事,例如將 EventType 屬性改為 打開網頁,然后在 EventData 屬性中寫入網址,即可通過點擊按鈕打開網頁。" />
        <local:MyButton Width="140" Height="35" HorizontalAlignment="Left" Padding="13,0,13,0"
                   Text="打開 MCBBS" EventType="打開網頁" EventData="https://www.mcbbs.net/" />
    </StackPanel>
</local:MyCard>

<local:MyCard Title="按鈕教學 2:屬性" Margin="0,0,0,15">
    <StackPanel Margin="25,40,23,15">
        <TextBlock TextWrapping="Wrap"
                   Text="你可以修改 ColorType 屬性來調整按鈕配色,Highlight 代表當前主題色,Red 代表紅色。ToolTip 屬性還可以讓你在鼠標懸浮在上面的時候顯示提示文本。" />
        <local:MyButton Margin="0,8,0,10" Width="250" Height="35" ColorType="Highlight"
                   Text="打開 Wiki(按鈕是主題色)" EventType="打開網頁" EventData="https://minecraft-zh.gamepedia.com/Minecraft_Wiki" ToolTip="點擊打開 Minecraft Wiki!" />
        <TextBlock TextWrapping="Wrap"
                   Text="local:MyTextButton 是沒有邊框的文本按鈕,你同樣可以設置 EventType 與 EventData 讓它具有特定功能。" />
        <local:MyTextButton Margin="0,8,0,0" HorizontalAlignment="Center"
                   Text="點擊打開知乎" EventType="打開網頁" EventData="https://www.zhihu.com/" />
    </StackPanel>
</local:MyCard>

<local:MyCard Title="按鈕教學 3:啟動游戲" Margin="0,0,0,15">
    <StackPanel Margin="25,40,23,15">
      <TextBlock TextWrapping="Wrap"
                 Text="EventType 改為啟動游戲,EventData 改為游戲版本,即可點擊啟動特定版本的游戲。如果當前游戲文件夾沒有該版本則無法啟動。" />
      <local:MyButton Margin="0,8,0,10" Width="250" Height="35"
                 Text="啟動 Minecraft 1.12.2" EventType="啟動游戲" EventData="1.12.2" />
      <TextBlock TextWrapping="Wrap"
                 Text="在 EventData 后面添加一條豎線(|),然后寫服務器 IP,即可在啟動該版本的同時自動進入服務器。按 Shift + 回車鍵上方的鍵就能打出來豎線了。" />
      <local:MyButton Margin="0,8,0,0" Width="250" Height="35"
                 Text="使用 1.12.2 進入 Hypixel" EventType="啟動游戲" EventData="1.12.2|mc.hypixel.net" ToolTip="服務器 IP:mc.hypixel.net" />
    </StackPanel>
</local:MyCard>

<local:MyCard Title="按鈕教學 4:打開文件" Margin="0,0,0,15">
    <StackPanel Margin="25,40,23,15">
        <TextBlock TextWrapping="Wrap"
                   Text="EventType 為打開文件,EventData 為文件路徑,即可點擊打開特定文件或啟動程序。" />
        <local:MyButton Margin="0,8,0,8" Width="200" Height="35"
                   Text="打開記事本" EventType="打開文件" EventData="notepad.exe" />
        <TextBlock TextWrapping="Wrap" Margin="0,4,0,0"
                   Text="如果能在 PCL 文件夾中找到該文件,則會優先打開 PCL 文件夾中的文件。當然,你可以使用例如 C:\ 開頭的絕對路徑。" />
        <local:MyButton Margin="0,8,0,8" Width="200" Height="35"
                   Text="打開 PCL 日志" EventType="打開文件" EventData="Log1.txt" ToolTip="PCL2 的日志文件就在 PCL 文件夾內,且名為 Log1.txt" />
        <TextBlock TextWrapping="Wrap" Margin="0,4,0,0"
                   Text="就像為游戲指定服務器 IP 一樣,你也可以在 EventData 的豎線后為程序添加啟動參數。" />
        <local:MyButton Margin="0,8,0,0" Width="200" Height="35"
                   Text="定位游戲啟動腳本" EventType="打開文件" EventData="explorer.exe|/select,LatestLaunch.bat" ToolTip="PCL2 會將上一次啟動 MC 的腳本保存在 PCL 文件夾內,且名為 LatestLaunch.bat。&#xA;點擊按鈕會打開文件管理器,並且借助參數要求它選中這個文件。" />
    </StackPanel>
</local:MyCard>

<local:MyCard Title="按鈕教學 5:其他命令" Margin="0,0,0,15">
    <StackPanel Margin="25,40,23,15">
        <TextBlock TextWrapping="Wrap" Margin="0,0,0,4"
                   Text="EventType 為復制文本,會將 EventData 中的內容復制到剪貼板。" />
        <TextBlock TextWrapping="Wrap" Margin="0,0,0,4"
                   Text="EventType 為刷新主頁,即可點擊重新加載主頁。如果你使用聯網方式下載主頁文件,你可以通過這一方式更新主頁內容。它無需指定 EventData。" />
        <TextBlock TextWrapping="Wrap"
                   Text="EventType 為下載文件,會在點擊時要求選擇文件保存位置,並且下載 EventData 的鏈接中的文件。" />
        <local:MyButton Margin="0,8,0,0" Width="250" Height="35"
                   Text="下載 MCBBS 的 Logo" EventType="下載文件" EventData="https://www.mcbbs.net/template/mcbbs/image/logo_sc.png" />
    </StackPanel>
</local:MyCard>

<local:MyCard Title="復雜布局" Margin="0,0,0,15">
    <StackPanel Margin="25,40,23,15">
        <local:MyHint Margin="0,0,0,7" IsWarn="False"
                   Text="下面的按鈕列舉了全部 6 種 EventType 作為示例。" />
        <TextBlock TextWrapping="Wrap" Margin="0,0,0,4"
                   Text="你需要用到 StackPanel 在一橫行里塞下多個按鈕,你可以僅在這個教學卡片的基礎上稍作調整,來實現自己的按鈕布局。" />
        <TextBlock TextWrapping="Wrap" Margin="0,0,0,10"
                   Text="如果你要實現更復雜的布局,你必須使用 Grid 等控件。多百度吧……谷歌也行。" />
      
        <!-- 這是第一行 -->
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
            <local:MyButton Margin="0,0,10,0" Width="140" Height="35" HorizontalAlignment="Left" Padding="13,0,13,0" ColorType="Highlight"
                   Text="打開 B 站" EventType="打開網頁" EventData="https://www.bilibili.com/" />
            <local:MyButton Margin="0,0,10,0" Width="140" Height="35" HorizontalAlignment="Left" Padding="13,0,13,0"
                   Text="進入 Hypixel" EventType="啟動游戲" EventData="1.16.3|mc.hypixel.net" ToolTip="使用 Minecraft 1.16.3 進入 Hypixel" />
            <local:MyButton Margin="0,0,10,0" Width="140" Height="35" HorizontalAlignment="Left" Padding="13,0,13,0"
                   Text="打開畫圖" EventType="打開文件" EventData="mspaint.exe" />
        </StackPanel>
      
        <!-- 這是第二行 -->
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,10,0,0">
            <local:MyButton Margin="0,0,10,0" Width="140" Height="35" HorizontalAlignment="Left" Padding="13,0,13,0" ColorType="Red"
                   Text="復制召喚命令" EventType="復制文本" EventData="/execute as @a at @s run summon Creeper ~ ~2 ~" ToolTip="這條 Minecraft 命令會在每個玩家頭頂召喚一只苦力怕!" />
            <local:MyButton Margin="0,0,10,0" Width="140" Height="35" HorizontalAlignment="Left" Padding="13,0,13,0"
                   Text="刷新主頁" EventType="刷新主頁" ToolTip="這通常用於聯網更新主頁時刷新信息,對本地文件沒啥用" />
            <local:MyButton Margin="0,0,10,0" Width="140" Height="35" HorizontalAlignment="Left" Padding="13,0,13,0"
                   Text="下載作者的頭像" EventType="下載文件" EventData="https://www.mcbbs.net/uc_server/data/avatar/000/14/51/06_avatar_small.jpg?ts=1471402592" />
        </StackPanel>
      
    </StackPanel>
</local:MyCard>

<!-- 

全部通用的屬性:
 - Width、Height:設置寬度與高度
 - ToolTip:設置鼠標指向時的提示文本
 - Foreground:調整前景顏色(十六進制字符串,例如 #FF010203 代表 ARGB 中的 255,1,2,3。前兩位代表不透明度,FF 為全不透明,00 為全透明)
 - Background:調整背景顏色(使用類似 Background="{DynamicResource ColorBrush5}" 的格式以調用 PCL2 當前的主題顏色,修改末尾的數字編號以改變顏色濃度)
 - Margin:調整外邊距(格式為 左,上,右,下。例如 Margin="0,0,0,2" 即為 2 單位的下邊距)
 - HorizontalAlignment:設置對齊方式(Left、Center、Right)

TextBlock(純文本):
 - Text:設置顯示的文本(如果要使用引號等特殊字符,自行百度 XAML 轉義)
 - TextWrapping:開啟自動換行
 - FontSize:設置字號
 
Image(圖片):
 - Source:要顯示的圖片的網址

local:MyHint(提示條):
 - Text:設置顯示的文本(&#xA; 代表換行)
 - IsWarn:設置為 True 代表警告樣式,False 代表提示樣式
 
local:MyButton(按鈕):
 - Text:設置顯示的文本
 - Padding:設置內邊距,格式與 Margin 一致
 - ColorType:設置顏色主題(Highlight 為當前啟動器的主題顏色,Red 為紅色,默認為黑色)
 - EventType、EventData:觸發特定事件
 
local:MyTextButton(文本按鈕):
 - Text:設置顯示的文本
 - EventType、EventData:觸發特定事件
 
local:MyCard(卡片):
 - Title:設置顯示的標題文本
 - CanSwap:這張卡片是否可以折疊,True 為是,False 為否
 - IsSwaped:這張卡片是否默認折疊,要求 CanSwap 必須為 True

-->


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM