При объявлении одного ресурса картинки для нескольких элементов, картинка отображалась только на первом элементе. И приходилось лепить несколько одинаковых ресурсов с разными ключами. Указание StaticSource/DynamicSource или объявление ресурса во внутреннем контейнере (Grid и др.) не спасало ситуацию.
Судя по аналогичной проблеме, отрабатывает вот такая ошибка (только почему-то не отображалась):
“Specified element is already the logical child of another element. Disconnect it first.”
Пример:
1 2 3 4 5 6 7 |
<Window.Resources> <Image x:Key="image" Source="../Resources/image.png"/> </Window.Resources> <Button x:Name="b1" Content="{StaticResources image}"/> // здесь картинка будет <Button x:Name="b2" Content="{StaticResources image}"/> // а здесь уже пусто <Button x:Name="b3" Content="{StaticResources image}"/> // здесь тем более |
Оказывается, достаточно в объявлении ресурса добавить x:Shared="false" (которое кстати не отображает IntelliSense в виде подсказки, т.е. скрыто), и будет вам счастье:
<Image x:Key="image" Source="../Resources/image.png" x:Shared="false"/>