Есть ли разница "используя ResourceDictionary или нет в wpf xaml, чтобы обернуть мой ресурс"? - PullRequest
0 голосов
/ 25 мая 2018

например:

<UserControl.Resources>
        <converters:WorkflowInstanceStatusConvert x:Key="WorkflowInstanceStatusConvert"/>
        <converters:WorkflowInstanceStatusConvert x:Key="WorkflowInstanceStatusConvert1"/>
    </UserControl.Resources>

<UserControl.Resources>
    <ResourceDictionary>
        <converters:WorkflowInstanceStatusConvert x:Key="WorkflowInstanceStatusConvert"/>
        <converters:WorkflowInstanceStatusConvert x:Key="WorkflowInstanceStatusConvert1"/>
    </ResourceDictionary>
</UserControl.Resources>

Есть ли разница? Любой ответ будет оценен.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

первый пример кода является примером неявного синтаксиса коллекции;тег, представляющий элемент коллекции (ResourceDictionary), может быть опущен.Вместо этого указываются элементы, которые добавляются в коллекцию как элементы.(из документации Microsoft )

, поскольку <ResourceDictionary> опущено, свойство Resources вначале равно null, а UserControl автоматически создаст ResourceDictionary - см. исходный код

во втором примере кода ResourceDictionary указан явно.Это необходимо, если вы используете MergedDictionaries для загрузки других ресурсов.

0 голосов
/ 25 мая 2018

Я думаю, что элементы в словаре ресурсов не обрабатываются сразу после загрузки элемента управления.Они загружаются по запросу по запросу.

Вот примечание от MSDN

Элементы в ResourceDictionary не обрабатываются немедленно, когда код приложения загружается загрузчиком XAML.Вместо этого ResourceDictionary остается в качестве объекта, а отдельные значения обрабатываются только тогда, когда они специально запрошены.

, и вот ссылка для ссылки https://msdn.microsoft.com/en-us/library/system.windows.resourcedictionary(v=vs.85).aspx

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