<Canvas.Resources>
            <ImageBrush x:Key="myImageBrush1" ImageSource="/myEdit;component/Images/btn1.ico"/>
            <ImageBrush x:Key="myImageBrush2" ImageSource="/myEdit;component/Images/btn2.ico"/>
            <ImageBrush x:Key="myImageBrush3" ImageSource="/myEdit;component/Images/btn3.ico"/>
            <ImageBrush x:Key="myImageBrush4" ImageSource="/myEdit;component/Images/btn4.ico"/>
            <Style x:Key="myStyle" TargetType="{x:Type Button}">
                <Setter Property="Border.Background" Value="{StaticResource ?????}"/>                
            </Style>
        </Canvas.Resources>
            <Button x:Key="btn1" Content="btn1" Style="{StaticResource myStyle}" />
            <Button x:Key="btn2" Content="btn2" Style="{StaticResource myStyle}" />
            <Button x:Key="btn3" Content="btn3" Style="{StaticResource myStyle}" />
            <Button x:Key="btn4" Content="btn4" Style="{StaticResource myStyle}" />?????处应该如何写才能让btn1应用btn1.ico背景,btn2应用btn2.ico背景?

解决方案 »

  1.   

    用控件模板试试。<ControlTemplate x:Key="Btn1" TargetType="{x:Type Button}">
    <Grid>
          <Image x:Name="bg_pic" Source="btn1.ico" Stretch="Uniform"/>
          <Border>
                  <ContentPresenter Content="{TemplateBinding Content}"/>
          </Border>
    </Grid>
    </ControlTemplate>
    <Button x:Key="btn1" Content="btn1" Template="{StaticResource Btn1}"" />
      

  2.   

    模版和style一样吧,还是不会····
    能不能在xaml中使用数组啊····
      

  3.   

    XAML是类似XML的扩展标记语言,无法使用数组的。
    控件模板的作用是针对控件进行自定义定制,引用了该模板的控件将会根据该定制进行模板实例化,包括外观以及内部的控件排布等等。具体可以参考MSDN。
    而style只能配置控件的显示外观。
      

  4.   

    其实直接设置每一个按钮的background就可以,用一个binding + converter另一种方法如下:
            <Canvas.Resources>
                <Style x:Key="myStyle" TargetType="{x:Type Button}">
                    <Setter Property="Background">
                        <Setter.Value>
                            <ImageBrush ImageSource="{Binding Path=Tag,RelativeSource={RelativeSource TemplatedParent}}"></ImageBrush>
                        </Setter.Value>
                    </Setter>
                </Style>
            </Canvas.Resources>
            <!-- 把下面的1.gif替换成你的文件-->
            <Button Name="btn1" Content="btn1" Style="{StaticResource myStyle}" Tag="1.gif"/>
            <Button Name="btn2" Content="btn2" Style="{StaticResource myStyle}" Tag="1.gif"/>
            <Button Name="btn3" Content="btn3" Style="{StaticResource myStyle}" Tag="1.gif"/>
            <Button Name="btn4" Content="btn4" Style="{StaticResource myStyle}" Tag="1.gif"/>