如果您尝试将任何共享资源与 x:Shared="false" 一起使用,Visual Studio 2010 的 xaml 设计器会向您显示以下异常:
System.InvalidOperationException 指定元素已经是另一个元素的逻辑子元素。先断开它。
是否有可能解决它(例如,通过实现一个附加属性来创建相同的共享对象)?
示例 xml:
<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 中修复了吗?