想用ControlTemplate重写button的显示,让一个button上显示一张图片。
这样写没有问题:
<Button x:Name="image_Button" Width="50" Height="50"> 
                <Grid>
                    <Image>
                        <Image.Source>
                            <BitmapImage UriSource="./Resources/image/player_play.png"/>
                        </Image.Source>
                    </Image>
                </Grid>
</Button>但是用ControlTemplate就不可以:
 <Button x:Name="image_Button" Width="50" Height="50"> 
                <Button.Template>
                    <ControlTemplate>
                        <Grid>                            
                            <Image>
                                <Image.Source>
                                    <BitmapImage UriSource="./Resources/image/player_play.png"/>
                                </Image.Source>
                            </Image>                     
                        </Grid>
                    </ControlTemplate>
                </Button.Template>
            </Button>
请求高数指点。

解决方案 »

  1.   

    图片路径有问题
    要么为相对路径,要么为绝对路径
    如果player_play.png在项目解决方案下的文件夹下可以这么写:
    UriSource="Resources/image/player_play.png"
      

  2.   

    我这样写在ControlTemplate没事儿啊 估计就是路径的问题
    <Image x:Name="IconImage" Source="/TestPro;component/Images/computer2.png" Height="15" Width="15" />
      

  3.   

    能把完整点的代码复制过来看看吗,我自己对照一下。
    同样的路径放在grid中就没有问题。
      

  4.   

    我用的就是相对路径呀,而且放在grid中就没有问题。
      

  5.   


    我测试了下 如果相对路径 在里面写成./也是没有问题的 可以显示成功
    我发的那个绝对路径也是可以跑的
    个人建议写成这样 TestPro是project的名称 Images/computer2.png是文件相对根目录的路径
    /TestPro;component/Images/computer2.png所以基本上都是没有问题的 代码不用贴了 楼主如果真的想搞明白就把你代码贴出来我看看吧
    不然我也不知道怎么给你找错哦 
      

  6.   

    图片路径:
    WpfApplication2
    ->Resources
    -->image
    --->player_play.png
      

  7.   

    源码:
     <Button x:Name="image_Button" Width="50" Height="50"> 
                    <!--<Grid>
                        <Image Source="{StaticResource Image_player_play}">
                           
                        </Image>
                    </Grid>-->
                    <Button.Template>
                        <ControlTemplate >
                            <Grid>                            <Image Source="/Resources/image/player_play.png">
                                   
                                </Image>                     
                            </Grid>
                        </ControlTemplate>
                    </Button.Template>
                </Button>
      

  8.   


    用了你的代码我测试没有问题啊 显示正常啊
    或者你仔细看下报错吧 也许不是control template的问题哦 呵呵
      

  9.   

    谢谢!
    我也重新试了下,
    原来是用了controltemplate以后button变成没有任何效果的了,
    再加上图片也是有透明效果的白色图片,
    所以不是代码的问题,是显示出来了,没看出来。
    把button的背景设置成black就可以了。
    非常感谢!