WPF: XAML как ресурс или страница - PullRequest
0 голосов
/ 02 июля 2018

для проектов WPF можно скомпилировать файлы * .xaml как Page или как Resource.

Resource напрямую хранит необработанный файл * .xaml в ресурсах сборки. Это прекрасно работает для файлов, у которых нет кода и нет «особого» поведения. Это означает, что простые <ResourceDictionary> файлы работают нормально, за исключением одного, относящегося к теме (Theme\Generic.xaml).

Файлы с Page компилируются в файл BAML и сохраняются в ресурсах. Это поддерживает все, что поддерживает необработанный файл * .xaml, а также все специальные случаи и вспомогательный код сверху.

В тестовом проекте мне не удалось найти каких-либо существенных различий между обоими методами. Недостаток метода Resource в том, что файл не проверяется. Означает, что он не должен содержать допустимый код XAML. Как бы то ни было, включение его в Window и использование контента работает, если <ResourceDictionary> хранится как Resource или как Page точно так же.

Естественно, я установил бы файлы на Page, чтобы получить проверку ошибок. Я не вижу причины, по которой следует использовать метод Resource. Как бы то ни было, в документации вначале упоминается метод обработки файлов как Resource, но без объяснения, почему кто-то будет использовать его для * .xaml файлов.

Так что вопрос такой: Есть ли причина для установки файлов WPF XAML на Resource?

1 Ответ

0 голосов
/ 02 июля 2018

Есть ли причина для установки файлов WPF XAML в Resource?

Это зависит от ваших требований. Если вы хотите, чтобы компилятор компилировал XAML в BAML, вы должны установить для Build Action значение Page.

Если вам нужен свободный нескомпилированный XAML-файл, вы можете установить Build Action на Content.

Вы можете установить Build Action на Resource, если вы хотите встроить свободный файл XAML в вашу сборку в качестве ресурса вместо того, чтобы по какой-то причине скопировать его в выходную папку в качестве содержимого. Хотите ли вы сделать это или «есть причина» для этого, зависит от ваших конкретных требований.

Но я бы не советовал вам менять значение по умолчанию Build Action на Page, если у вас нет причин для этого.

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