(C #, WPF) Сохранить ResourceDictionary локально - PullRequest
0 голосов
/ 01 марта 2019

каждый!

Я отправляю запрос о помощи здесь, потому что я заблокирован.

Я создал систему перевода, используя Ресурсные словари для ключей и значений.Ничего сложного.

За исключением того, что я хотел бы сохранить свои словари локально (при запуске программного обеспечения) на диске в файле .XAML.

Проблема в том, что яне могу найти способ их сохранить

Вот словарь ресурсов, который я хотел бы сохранить:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:sys="clr-namespace:System;assembly=mscorlib">

<!-- General -->
<sys:String x:Key="LanguageName">en</sys:String>
<sys:String x:Key="LanguageDisplayName">English</sys:String></ResourceDictionary>

Спасибо и хорошего дня!И извините за мой приблизительный английский, я французский: x

1 Ответ

0 голосов
/ 01 марта 2019

Да, конечно, вы можете записывать файлы на диск.И да, вы можете позже прочитать их обратно, чтобы заново создать словарь ресурсов.

Мне не ясно, как пользователь получает то, что вы нам показываете.

Если это какСкомпилированный словарь ресурсов, вы можете создать его экземпляр, а затем записать его на диск с помощью XamlWriter.

https://docs.microsoft.com/en-us/dotnet/api/system.windows.markup.xamlwriter?view=netframework-4.7.2

Или вы можете прочитать «плоский» нескомпилированный файл xaml с веб-сервера и сохранить его наappdata.

Странная вещь в словарях ресурсов.

Тот же синтаксис, который используется для объединения словаря ресурсов, будет работать с некомпилированным файлом .xaml.

https://social.technet.microsoft.com/wiki/contents/articles/28797.wpf-dynamic-xaml.aspx#Loading_a_Flat_File_as_a_Resource_Dictionary

В качестве альтернативы вы можете xamlreader.load () создать плоский файл .xaml и создать словарь ресурсов в памяти, который затем объедините в коде.

Вы можете манипулировать нескомпилированными файлами xaml как строками или рассматривать их какXML.Некоторые примеры в ссылке делают это.

И вы можете получить словарь ресурсов в виде строки из сервиса и xamlreader.parse (), который помещается в словарь ресурсов в памяти.Что вы можете затем объединить в коде.

BTW

Ваш английский мне кажется хорошим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...