WP7 Image Uri as StaticResource

时间:2011-03-29 10:14:48

标签: image windows-phone-7

我有一个Windows Phone 7应用程序,我正在尝试将一些常见元素移动到资源文件中。

文字和样式工作正常,但我很难找到划分Uri的正确方法。

这是我试图开始工作的代码示例。

<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
        <shell:ApplicationBarIconButton IconUri="{StaticResource MenuButton1}" Text="Button1"/>
        <shell:ApplicationBarIconButton IconUri="{StaticResource MenuButton2}" Text="Button2"/>
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

我制作了一个AppImages.xaml文件,这里是代码;

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <sys:String x:Key="MenuButton1">/Images/button1.png</sys:String>
    <sys:String x:Key="MenuButton2">/Images/button2.png</sys:String>
</ResourceDictionary>

很明显,我不能只使用字符串,但我不知道应该使用什么。

我是WP7开发的新手,所以如果我做了明显错误的事情,请告诉我。

谢谢, 麦克

2 个答案:

答案 0 :(得分:1)

如果不进行测试,我猜你会尝试将字符串用于带URI的参数。您可以尝试添加转换器以使其成为正确的类型。该框架通常会自动进行转换。

调试输出是否显示任何(绑定)错误?

您可以创建一个为每个URI公开静态属性的类,而不是以这种方式定义资源。请参阅我的博客上的示例:http://blog.mrlacey.co.uk/2011/03/binding-to-static-classes-in-windows.html

答案 1 :(得分:1)

您可以尝试将Uri本身存储为资源:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=System">
    <sys:Uri x:Key="MenuButton1">/Images/button1.png</sys:Uri>
    <sys:Uri x:Key="MenuButton2">/Images/button2.png</sys:Uri>
</ResourceDictionary>

注意assembly=System命名空间声明中的xmlns:sys。此外,当您在Visual Studio编辑器中键入<sys:时,Uri将不会显示在IntelliSense列表中,但在XAML中使用它似乎完全没问题。