Если вы попытаетесь использовать какие-либо общие ресурсы с x:Shared="false", конструктор xaml Visual Studio 2010 покажет вам следующее исключение:
System.InvalidOperationException Указанный элемент уже является логическим дочерним элементом другого элемента. Сначала отсоедините его.
Можно ли обойти это (например, путем реализации прикрепленного свойства, которое создает то же самое, что и общий объект)?
Пример XAML:
<Window.Resources>
<Image x:Key="SharedImage" x:Shared="false" Source="/Images/image.png" />
<Style x:Key="ImageButton" TargetType="{x:Type Button}">
<Setter Property="Content" Value="{StaticResource SharedImage}" />
</Style>
</Window.Resources>
<StackPanel>
<Button Style="{StaticResource ImageButton}" />
<Button Style="{StaticResource ImageButton}" />
</StackPanel>
Исправлена ли эта ошибка в Visual Studio 2012?