我调试时Wp7背景图像没有显示出来

时间:2012-11-12 17:10:53

标签: debugging windows-phone-7

我是WP7编程的新手,但是有其他平台的XP,我只是运行所有的基础知识,所以我可以了解语言,但我遇到了障碍,我已经输入了我的背景图像的来源:

<Grid x:Name="LayoutRoot">
    <Grid.Background>
        <ImageBrush ImageSource="C:/users/hypernova/pictures/Background1.jpg">
        </ImageBrush>
    </Grid.Background>
</Grid>

图像显示为XAML旁边的设计选项卡中的背景,但是当我调试并且模拟器启动它只是黑屏没有背景图像时,我错过了什么?我尝试了其他设置背景的方法,如:

<Grid x:Name="LayoutRoot">
  <Canvas>
    <Canvas.Background>
      <ImageBrush ImageSource="C:/users/hypernova/pictures/Background1.jpg">
      </ImageBrush>
    </Canvas.Background>
  </Canvas>
</Grid>

但是同样的事情发生了我还尝试了其他一些方法,但是没有什么,我确定我错过了应该抓住的东西。

1 个答案:

答案 0 :(得分:0)

路径

  

C:/users/hypernova/pictures/Background1.jpg

存在于您的开发计算机上,而不是任何Windows Phone 7+设备上。

请记住,用户将从商店下载您的应用,然后在手机上运行。他们怎么可能访问您的硬盘并获得该图像?

不幸的是,由于设计界面允许你这样做,它当然会让新开发者感到困惑。

您应该做的是将您的图片作为资源添加到项目中,然后引用资源via a pack URI (除非点击该链接,否则你想吓唬自己傻瓜)。

要将其添加为资源,只需将图像添加到WP7项目的根目录,右键单击它,选择“属性”,然后将构建操作更改为“资源”(不是嵌入式资源,请注意)。

接下来,您必须为此资源构建pack URI。这......并不容易。通过在设计器中编辑ImageBrush的属性,可以使用Visual Studio中的工具执行此操作。这是最简单的推荐路线。您所要做的就是在“属性”工具窗口中编辑ImageSource的{​​{1}},然后从解决方案中的可用图像列表中选择图像。

另一种方法是手动构建ImageBrush URI。例如,您可以采取以下

  

/ [项目组装名称];组件/ Background1.jpg

pack替换为程序集的名称(无扩展名),并将其用作[project assembly name]值。通过查看项目属性的“应用程序”部分下的“程序集名称”,可以找到正确的项目程序集名称。

ImageSource

注意,取决于项目文件夹结构的构造方式,此URI可能不同。在所提供的工具之外构造正确的URI是一个值得另一个问题的任务。