Изображения WPF внутри ResourceDictionary являются одноэлементными? - PullRequest
6 голосов
/ 23 июня 2011

WPF ... если я добавлю изображение в свой ResourceDictionary, а затем использую StaticResource, чтобы использовать его в нескольких местах ... у этого изображения есть только один экземпляр?или каждый раз, когда я его использую, создается новый экземпляр этого изображения?

Ответы [ 2 ]

5 голосов
/ 23 июня 2011

Уровень экземпляра
В том же экземпляре элемента, который содержит ResourceDictionary, да, он всегда берется один и тот же экземпляр, пока вы не говорите x: Shared = "false" .
Для элементов управления и изображений это будет необходимо, если вы хотите, чтобы они использовали их более одного раза. Для ImageSources нет. Это потому, что элемент может иметь только один родительский элемент.

Глобальный уровень
Однако ресурсы загружаются для каждого экземпляра. Это означает, что если вы определите ресурс в разделе ресурсов UserControl, для каждого экземпляра вашего UserControl будет загружен один экземпляр ресурса. Поместите часто используемые ресурсы в раздел Ресурсы приложения или в раздел Ресурсы Windows.

Здесь вы найдете больше информации.

0 голосов
/ 23 июня 2011

Если вы хотите, чтобы ОДНА копия копии была загружена, используйте SharedResourceDictionary Кристиана Мозера в http://www.wpftutorial.net/MergedDictionaryPerformance.html

...