title: 使用json代替resw文件 date: 2024-01-20 categories: 編程 tags: - C# - .NET 前言 在寫WinUI3或UWP項目的時候,總覺得resw文件冗長可讀性又差,希望要是能用json就好了。 我在測試MakePri.exe[1]的時候意外發現 ...
title: 使用json代替resw文件
date: 2024-01-20
categories: 編程
tags:
- C#
- .NET
前言
在寫WinUI3或UWP項目的時候,總覺得resw文件冗長可讀性又差,希望要是能用json就好了。
我在測試MakePri.exe[1]的時候意外發現了它支持一種叫resjson的文件,可以用以取代resw。
本文假定讀者以有resw[2]的使用基礎。
priconfig.xml部分內容:
<indexer-config type="resw" convertDotsToSlashes="true" initialPath=""/>
<indexer-config type="resjson" initialPath=""/>
對比
resjson雖然沒有可視化編輯器,但它可讀性十分高,可以直接用文本編輯器編輯。
相對而言resw文本可讀性很低,幾乎只能用可視化編輯器編輯。
resjson不支持註釋,但其實註釋除了可視化編輯器內其他地方都用不到,所以並沒有什麼用處。
另外用於x:Uid
的屬性寫法,如TextBox.Text
,在resjson中須將點換成斜杠,即TextBox/Text
。
因為resjson預設沒有設置convertDotsToSlashes
。
語法
resjson的語法是標準json,但文件尾碼名必須是resjson,而且內容只能包含簡單的單個json對象,成員是字元串鍵和字元串值,如:
{
"String1": "字元串1內容",
"TextBox2/Text": "字元串2",
"TextBox2/[using:Microsoft/UI/Xaml/Automation]AutomationProperties/Name": "字元串3"
}
引用
引用方法和resw完全一致,放在指定位置並引用後,使用x:Uid
或者ResourceLoader
引用即可。