为多个标签按钮使用相同的图像和按钮样式

时间:2012-06-25 18:20:24

标签: xaml reference styles setter

我有一个用户控件,其中包含一个带有多个标签的标签项。每个选项卡都包含一个具有相同按钮的自定义堆栈面板(添加,更新,删除)。我收到一个“指定元素已经是另一个元素的逻辑子元素。首先断开它”错误。我不知道如何断开它,因为我已经设置了x:Shared = "False"元素。

Inside Grid.Resource:

<!--ButtonAddImage-->
<Image x:Key="ButtonAddImage"
       x:Shared="True">
    <Image.Style>
        <Style TargetType="{x:Type Image}">
            <Setter Property="Source"
                    Value="add2_32.png" />
            <Setter Property="Stretch"
                    Value="Uniform" />
        </Style>
    </Image.Style>
</Image>


<!--ButtonAddStyle-->
<Style TargetType="Button"
       x:Key="ButtonAddStyle"
       x:Shared="False">
    <Setter Property="Content"
        Value="{DynamicResource ResourceKey=ButtonAddImage}" />
    <Setter Property="Width"
            Value="32" />
    <Setter Property="Height"
            Value="22" />
    <Setter Property="HorizontalAlignment"
            Value="Left" />
    <Setter Property="VerticalAlignment"
            Value="Center" />
</Style>

内部标签:

<Button  Style="{DynamicResource ResourceKey=ButtonAddStyle}"
         Name="gdSMSInfo_btnAddRecord"
         Click="gdSMSInfo_btnAddRecord_Click">

1 个答案:

答案 0 :(得分:0)

对于按钮样式,您有x:Shared =“False”,但对于您在样式中使用的图像,x:Shared =“True”。将图像本身的x:共享更改为False,它适用于我。