В WPF есть словари ресурсов, которые хорошо подходят для этого.
Если вы объедините их в app.xaml, их значения перейдут в application.current.resources.
Это своего рода хеш-таблица, котораязатем становится доступным во всем приложении.
Вы можете объединять не скомпилированные словари ресурсов .xaml, используя тот же синтаксис.
Как объяснено:
https://social.technet.microsoft.com/wiki/contents/articles/28797.wpf-dynamic-xaml.aspx#Loading_a_Flat_File_as_a_Resource_Dictionary
Этот объединяемый Dictionary1.xaml является некомпилированным плоским файлом, который потенциально может быть заменен или отредактирован.
Вы можете ссылаться на ресурс с ключами, используя {staticresource keyname} или {dynamicresource keyname}.
В чем разница между StaticResource и DynamicResource в WPF?
Если вы сделаете все свои текстовые значения, вы хотите переключать строковые ресурсы в плоский не скомпилированный словарь ресурсов .xaml, тогда вы можете ссылаться на них вxaml.
Используйте динамический ресурс, и если ресурс будет изменен, вы получите новое значение в вашем textblock или label.
Таким образом, аналогично этой ссылке:
https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/how-to-use-a-resourcedictionary-to-manage-localizable-string-resources
Сделайте это с вашим приложением, скомпилируйте и предоставьте файл .xaml вместе с вашим распространяемым файлом. Пользователь видит следующие строки:
Скопируйте новый файл .xaml в этот словарь ресурсов.
Затем пользователь увидит значения в этом файле.
Отредактируйтефайл в блокноте и измените значение.
Когда приложение запустится снова, оно получит новое значение.
Вы также можете наложить значения на новые, имеющие тот же ключ.
Таким образом, вы можете получить словарь ресурсов исходных значений, скомпилированный в.
Дать им нескомпилированную копию.
Ваш код сливается с последним некомпилированной копией.
Если ониотредактируйте или замените его, они получат новые значения.
Если все пойдет ужасно неправильно, они могут очистить все содержимое не скомпилированного словаря ресурсов между тегами словаря. Затем они возвращаются к исходным значениям.
Вы также можете иметь несколько слоев для брендинга и локализации, а также объединять различные значки и строки.
Скажем, вы хотели управлять строками и еще чем-то без участия пользователя. .
Вы можете разместить свои настроенные файлы на веб-сайте.
Загрузить файл с сервера в appdata и объединить его в код.
Или вы можете хранить строкив базе данных xamlreader.parse в словарь ресурсов, который вы объединяете.
Я успешно использовал варианты подхода в нескольких проектах.