0

我是 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>

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

4

1 回答 1

0

路径

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

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

请记住,用户将从商店下载您的应用程序,然后在他们的手机上运行它。他们将如何访问您的硬盘并获取该图像?

不幸的是,由于设计表面允许您这样做,因此对于新开发人员来说当然会感到困惑。

您应该做的是将您的图像作为 Resource 添加到您的项目中,然后通过URI引用该资源pack(除非您想把自己吓傻,否则不要单击该链接)。

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

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

另一种方法是手动构造packURI。例如,你可以采取以下

/[项目程序集名称];component/Background1.jpg

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

<ImageBrush ImageSource="/MyWp7Application;component/Background1.jpg"/>

请注意,根据您的项目文件夹结构的构建方式,此 URI 可能会有所不同。在提供的工具之外构建正确的 URI 是一项值得讨论的任务。

于 2012-11-12T17:27:55.067 回答