Skip to content

Commit b9d7137

Browse files
committed
新版自定义事件 & 替换标记
1 parent 184871d commit b9d7137

File tree

3 files changed

+55
-88
lines changed

3 files changed

+55
-88
lines changed

个性化/XAML 格式.xaml

Lines changed: 15 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@
6161
</StackPanel>
6262
</local:MyCard>
6363

64-
<local:MyCard Title="事件 1:打开网页、弹出窗口" Margin="0,0,0,15" CanSwap="True" IsSwapped="True">
64+
<local:MyCard Title="自定义事件" Margin="0,0,0,15" CanSwap="True" IsSwapped="True">
6565
<StackPanel Margin="25,40,23,15">
6666
<TextBlock Margin="0,0,0,10"
6767
Text="将按钮的 EventType 属性设为 打开网页,然后在 EventData 属性中写入网址,即可通过点击按钮打开网页。" />
68-
<local:MyButton Width="140" Height="35" HorizontalAlignment="Left" Padding="13,0,13,0"
68+
<local:MyButton Height="35" HorizontalAlignment="Left" Padding="20,0,20,0"
6969
Text="打开 Minecraft Wiki" EventType="打开网页" EventData="https://zh.minecraft.wiki/" />
7070
<TextBlock Margin="0,10,0,10"
7171
Text="或者将 EventType 属性改为 弹出窗口,然后在 EventData 属性中写入弹窗的标题与内容……" />
@@ -74,86 +74,24 @@
7474
<TextBlock Margin="0,10,0,0"
7575
Text="local:MyTextButton 同样可以设置 EventType 与 EventData 让它具有特定功能。" />
7676
<local:MyTextButton Margin="0,8,0,0" HorizontalAlignment="Center"
77-
Text="点击打开知乎" EventType="打开网页" EventData="https://www.zhihu.com/" />
78-
</StackPanel>
79-
</local:MyCard>
80-
81-
<local:MyCard Title="事件 2:启动游戏" Margin="0,0,0,15" CanSwap="True" IsSwapped="True">
82-
<StackPanel Margin="25,40,23,15">
83-
<TextBlock Margin="0,0,0,4"
84-
Text="将 EventType 设置为 启动游戏,EventData 设置为具体的游戏版本,即可通过点击按钮启动游戏。如果当前游戏文件夹没有该版本,则无法启动。" />
85-
<local:MyButton Margin="0,4,0,10" Width="250" Height="35"
86-
Text="启动 Minecraft 1.12.2" EventType="启动游戏" EventData="1.12.2" />
87-
<TextBlock Margin="0,0,0,4"
88-
Text="在 EventData 后面添加一条竖线(|),竖线后填写服务器 IP,即可在启动该版本的同时自动进入服务器。" />
89-
<local:MyButton Margin="0,4,0,0" Width="250" Height="35"
90-
Text="启动 1.20.1 并进入 Hypixel" EventType="启动游戏" EventData="1.20.1|mc.hypixel.net" ToolTip="服务器 IP:mc.hypixel.net" />
91-
<TextBlock Margin="0,0,0,4"
92-
Text="在 EventData 中填写 \current,表示启动当前被选中的游戏版本,同样可以在后面填写服务器 IP。" />
93-
<local:MyButton Margin="0,4,0,10" Width="250" Height="35"
94-
Text="启动当前选中版本并进入 Hypixel" EventType="启动游戏" EventData="\current|mc.hypixel.net" ToolTip="启动当前版本" />
95-
</StackPanel>
96-
</local:MyCard>
97-
98-
<local:MyCard Title="事件 3:执行命令" Margin="0,0,0,15" CanSwap="True" IsSwapped="True">
99-
<StackPanel Margin="25,40,23,15">
100-
<TextBlock Margin="0,0,0,4"
101-
Text="将 EventType 设置为 执行命令(或 打开文件),EventData 设置为文件路径,即可点击打开特定文件或启动程序。" />
102-
<local:MyButton Margin="0,4,0,8" Width="200" Height="35"
103-
Text="打开记事本" EventType="执行命令" EventData="notepad.exe" />
104-
<TextBlock Margin="0,4,0,0"
105-
Text="如果能在 PCL 文件夹中找到该文件,则会优先打开 PCL 文件夹中的文件。当然,你可以使用例如 C:\ 开头的绝对路径。" />
106-
<TextBlock Margin="0,0,0,4"
107-
Text="此外,PCL 会将文件中的 “花括号 path” 替换为 PCL 可执行文件所在文件夹({path}),可以用于执行特定程序或加载图片。" />
108-
<local:MyButton Margin="0,4,0,10" Width="200" Height="35"
109-
Text="打开 PCL 日志" EventType="执行命令" EventData="Log1.txt" ToolTip="PCL 的日志文件就在 PCL 文件夹内,且名为 Log1.txt" />
110-
<TextBlock Margin="0,0,0,4"
111-
Text="就像为游戏指定服务器 IP 一样,你也可以在 EventData 的竖线后为程序添加启动参数。" />
112-
<local:MyButton Margin="0,4,0,0" Width="200" Height="35"
113-
Text="定位游戏启动脚本" EventType="执行命令" EventData="explorer.exe|/select,LatestLaunch.bat" ToolTip="PCL 会将上一次启动 MC 的脚本保存在 PCL 文件夹内,且名为 LatestLaunch.bat。&#xA;点击按钮会打开文件管理器,并且借助参数要求它选中这个文件。" />
77+
Text="点击打开哔哩哔哩" EventType="打开网页" EventData="https://www.bilibili.com/" />
78+
<TextBlock Margin="0,30,0,0"
79+
Text="你也可以让一个控件触发多个事件。自定义事件的详细用法请参考下方的 Wiki。" />
80+
<local:MyListItem Margin="-5,8,-5,5"
81+
Title="自定义事件 - PCL Wiki" Info="点击查看自定义事件的完整列表与说明"
82+
Logo="pack://application:,,,/images/Blocks/CommandBlock.png" Type="Clickable"
83+
EventType="打开网页" EventData="https://github.com/Meloong-Git/PCL/wiki/自定义事件" />
11484
</StackPanel>
11585
</local:MyCard>
11686

117-
<local:MyCard Title="事件 4:其他事件类型" Margin="0,0,0,15" CanSwap="True" IsSwapped="True">
118-
<StackPanel Margin="25,40,23,15">
119-
<TextBlock Margin="0,4,0,6" FontWeight="Bold"
120-
Text="EventType 共有以下种类:" />
121-
<TextBlock Margin="0,0,0,4"
122-
Text="· 打开网页、启动游戏、打开文件:已在上方的卡片中介绍" />
123-
<local:MyButton Margin="0,5,0,6" Width="250" Height="35"
124-
Text="查看 PCL 源代码" EventType="打开网页" EventData="https://github.com/Meloong-Git/PCL/blob/main/Plain%20Craft%20Launcher%202/FormMain.xaml.vb"/>
125-
<TextBlock Margin="0,0,0,4"
126-
Text="· 今日人品、清理垃圾、内存优化、安装整合包:触发对应功能" />
127-
<TextBlock Margin="0,0,0,4"
128-
Text="· 复制文本:将 EventData 中的内容复制到剪贴板" />
129-
<TextBlock Margin="0,0,0,4"
130-
Text="· 刷新主页:点击重新加载主页。如果主页文件为联网更新,这会重新下载主页内容" />
131-
<TextBlock Margin="0,0,0,4"
132-
Text="· 下载文件:在点击时要求选择文件保存位置,并且下载 EventData 的链接中的文件&#xa;      EventData 中也能可选地指定文件名或目标文件夹,格式为:链接|文件名|文件夹" />
133-
<local:MyButton Margin="0,5,0,6" Width="250" Height="35"
134-
Text="下载百度的 Logo" EventType="下载文件" EventData="https://www.baidu.com/img/flexible/logo/pc/result.png" />
135-
<TextBlock Margin="0,4,0,4"
136-
Text="· 打开帮助:跳转到 EventData 对应的帮助文件(输入相对 Help 文件夹的路径)"/>
137-
<local:MyButton Margin="0,5,0,6" Width="250" Height="35"
138-
Text="打开自定义帮助页面" EventType="打开帮助" EventData="帮助/自定义帮助.json"/>
139-
<TextBlock Margin="0,4,0,4"
140-
Text="· 切换页面:强制切换到 PCL 的某一页面(尝试切换到不太对头的页面会出现不可预知的 Bug)&#xa;      EventData 为 页面种类|次要页面种类(PageType|PageSubType,例如 1|1)&#xa;      点击上方的 查看 PCL 源代码 按钮,在 1000 行左右的位置即可查找到对应数值"/>
141-
<local:MyButton Margin="0,5,0,6" Width="250" Height="35"
142-
Text="切换到下载页面" EventType="切换页面" EventData="1|1"/>
143-
<local:MyButton Margin="0,5,0,6" Width="250" Height="35"
144-
Text="切换到启动器设置" EventType="切换页面" EventData="3|2"/>
145-
<TextBlock Margin="0,4,0,4"
146-
Text="· 下载版本:切换到 EventData 对应的 Minecraft 下载页面"/>
147-
<local:MyButton Margin="0,5,0,6" Width="250" Height="35"
148-
Text="下载 Minecraft 1.12.2" EventType="下载版本" EventData="1.12.2"/>
149-
<TextBlock Margin="0,4,0,4"
150-
Text="· 修改设置:将 PCL 的特定设置修改为特定值"/>
151-
<local:MyButton Margin="0,5,0,6" Width="250" Height="35"
152-
Text="将窗口改为半透明" EventType="修改设置" EventData="UiLauncherTransparent|400"/>
87+
<local:MyCard Title="替换标记" Margin="0,0,0,15" CanSwap="True" IsSwapped="True">
88+
<StackPanel Margin="25,40,23,10">
89+
<local:MyListItem Margin="-5,0,-5,8"
90+
EventType="打开帮助" EventData="个性化/替换标记.json" />
15391
</StackPanel>
15492
</local:MyCard>
15593

156-
<local:MyCard Title="StackPanel 横向布局" Margin="0,0,0,15" CanSwap="True" IsSwapped="True">
94+
<local:MyCard Title="横向布局" Margin="0,0,0,15" CanSwap="True" IsSwapped="True">
15795
<StackPanel Margin="25,40,23,15">
15896
<TextBlock Margin="0,0,0,10"
15997
Text="你需要使用 StackPanel 在一行里塞下多个按钮。你可以仅在这个教学卡片的基础上稍作调整,来实现自己的按钮布局。" />
@@ -191,7 +129,7 @@
191129
Logo="pack://application:,,,/images/Blocks/Grass.png"
192130
EventType="打开帮助" EventData="帮助/自定义帮助.json" Type="Clickable" />
193131
<TextBlock Margin="0,0,0,4"
194-
Text="EventType、EventData 与按钮几乎一致唯一不同的是,列表项联网加载帮助文件时,必须手动设置 TitleInfo 属性,否则会报错" />
132+
Text="EventType、EventData 与按钮几乎一致唯一不同的是,列表项联网加载帮助文件时,必须手动设置 TitleInfo、Type、Logo 属性。" />
195133
</StackPanel>
196134
</local:MyCard>
197135

@@ -254,17 +192,6 @@
254192
</StackPanel>
255193
</local:MyCard>
256194

257-
<local:MyCard Title="替换标记" Margin="0,0,0,15" CanSwap="True" IsSwapped="True">
258-
<StackPanel Margin="25,40,23,15">
259-
<TextBlock Margin="0,0,0,4"
260-
Text="在花括号 {} 中写入特定内容,PCL 会在加载时对其进行替换。&#xa;例如,path 会被替换为 PCL 可执行文件所在文件夹({path}),用于在 EventData 中指定特定文件,或是加载图片。" />
261-
<TextBlock Margin="0,0,0,4"
262-
Text="你也可以使用替换标记来获取随机内容:cave 会被替换为一条随机的回声洞内容,hint 则是 “你知道吗” 的内容。" />
263-
<TextBlock Margin="10,6,0,5" Foreground="{DynamicResource ColorBrush3}"
264-
Text="你知道吗:{hint}" />
265-
</StackPanel>
266-
</local:MyCard>
267-
268195
<local:MyCard Title="进阶:Grid 布局" Margin="0,0,0,15" CanSwap="True" IsSwapped="True">
269196
<StackPanel Margin="25,40,23,15">
270197
<TextBlock Margin="0,0,0,4"

个性化/替换标记.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"__Author__": "龙腾猫跃",
3+
"Title": "替换标记",
4+
"Description": "在部分设置、自定义主页和帮助中使用的 {} 替换标记的格式介绍",
5+
"Keywords": "XAML",
6+
"Types": ["个性化"]
7+
}

个性化/替换标记.xaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
2+
<local:MyCard Title="简介">
3+
<StackPanel Margin="25,40,23,11">
4+
<TextBlock Margin="0,0,0,4" LineHeight="17"
5+
Text="在部分设置、自定义主页和帮助中,可以使用类似 &#123;time} 的替换标记,它可以动态替换设置和文件中的某些部分。" />
6+
</StackPanel>
7+
</local:MyCard>
8+
9+
<local:MyCard Title="示例">
10+
<StackPanel Margin="25,40,23,11">
11+
<TextBlock Margin="0,0,0,4" LineHeight="17"
12+
Text="例如,在 设置 → 启动选项 → 游戏窗口标题 中输入 “现在是 &#123;time}”,在启动游戏后就能在游戏窗口看到当前时间。" />
13+
<TextBlock Margin="0,15,0,4" LineHeight="17"
14+
Text="你也可以在 XAML 中直接使用替换标记,例如:" />
15+
<Label Margin="0,0,0,4" Padding="6" Background="{DynamicResource ColorBrush7}"
16+
Content="你在 &#123;date} &#123;time} 点进了这个帮助页,PCL 版本是 &#123;pcl_version}。" />
17+
<TextBlock Margin="0,0,0,4" LineHeight="17"
18+
Text="就会被自动替换为:" />
19+
<Label Margin="0,0,0,4" Padding="6" Background="{DynamicResource ColorBrush7}"
20+
Content="你在 {date} {time} 点进了这个帮助页,PCL 版本是 {pcl_version}。" />
21+
</StackPanel>
22+
</local:MyCard>
23+
24+
<local:MyCard Title="详情">
25+
<StackPanel Margin="25,40,23,11">
26+
<local:MyListItem Margin="-5,0,-5,8"
27+
Title="替换标记 - PCL Wiki" Info="点击查看替换标记的完整列表与说明"
28+
Logo="pack://application:,,,/images/Blocks/CommandBlock.png" Type="Clickable"
29+
EventType="打开网页" EventData="https://github.com/Meloong-Git/PCL/wiki/替换标记" />
30+
</StackPanel>
31+
</local:MyCard>
32+
33+
<local:MyHint Margin="0,0,0,15" Text="作者:龙腾猫跃" IsWarn="False" />

0 commit comments

Comments
 (0)