2012-06-06 103 views
2

我用下面的代码我就一个问题在几个小时前发现做一个按钮有一个形象:与图像WPF按钮不会出现

  <Button Name="bPlay" Height="70" Width="70" Margin="359,480,349,11"> 
      <Button.Template> 
       <ControlTemplate> 
        <Border HorizontalAlignment="Center" VerticalAlignment="Center"> 
         <Image Source="pack://siteoforigin:,,,/Resources/play.bmp" Width="70" Height="70" /> 
        </Border> 
       </ControlTemplate> 
      </Button.Template> 
     </Button> 

的问题是,由于某种原因,在Visual Studio上看起来不错,但是当我运行程序时,这些按钮不会出现。我找不到问题,我有点卡住了。图片play.bmp显然被添加到资源,但我仍然不知道问题是什么,谢谢!

回答

6

“siteoforigin”表示文件必须给出了相对于所述执行器组件的目录的路径英寸您的可执行文件很可能位于bin/Debug文件夹中。它在可执行文件的子目录中查找,该目录可能不存在(“bin/Debug/Resources/play.bmp”)。

如果要以这种方式链接到文件,那么必须告诉Visual Studio将其复制到输出文件夹(从属性窗格中)。或自己复制。

或者更好,你应该链接到它作为一个资源,它会嵌入到应用程序中。在属性窗格中将文件的构建类型设置为资源,然后使用项目文件夹中的相对路径链接到它。在这种情况下,直接在XAML中写入“Resources/play.bmp”。

+0

你说得对:)这工作完美无缺,谢谢! – waclock

+0

@waclock不要忘记[标记本文为答复](http://meta.stackexchange.com/a/5235/182862) –

+0

我知道Luiggi;) – waclock

0

尝试简化您的代码,也许只是拉出图像,看看是否显示。

<Button Name="bPlay" Height="70" Width="70" Margin="359,480,349,11"> 
    <Image Source="pack://siteoforigin:,,,/Resources/play.bmp" Width="70" Height="70" /> 
</Button> 

应该是有效的,以及在URI

+0

由于某种原因,当我尝试时出现图像(我可以看到按钮,但它没有图像) – waclock