应用程序级资源XAML

时间:2013-03-10 23:03:43

标签: xaml windows-phone-8

如何在XAML中创建应用程序级资源?我正在开发一个Windows Phone 8应用程序。

下面我有一个矩形,我想创建一个资源,可以在点击时用来改变矩形的颜色:

<Rectangle Fill="#FFF4F4F5" 
           HorizontalAlignment="Left" 
           Height="100" 
           Stroke="Black"
           VerticalAlignment="Top"
           Width="100"
           x:Name="pad1"
           Tap="pad1_tap"           
 />

我已经阅读了一些类似的帖子说:

<Application.Resources>
    <!-- Resources Here !-->
</Application.Resources>

...但我的应用程序中名称'Application'下没有对象。当尝试使用'Application.Resources'时,我收到一条错误说明:成员资源无法识别或无法访问。

2 个答案:

答案 0 :(得分:4)

Application对象位于app.xaml文件中。但只有当您希望整个应用程序共享您的资源时,它才有用。如果您只需要在一个页面中使用它,则可以在PhoneApplicationPage元素中声明您的资源:

<phone:PhoneApplicationPage.Resources>
    <!-- your resource -->
</phone:PhoneApplicationPage.Resources>

答案 1 :(得分:0)

您需要导入mscorlib库,然后使用StaticResource关键字引用您的资源,如下所示:

<Application
    x:Class="AppClass"
    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"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">

    <Application.Resources>
        <sys:Int32 x:Key="Test">80</sys:Int32>
    </Application.Resources>
</Application>

用法:

<Rectangle Fill="#FFF4F4F5" 
           HorizontalAlignment="Left" 
           Height="100" 
           Stroke="Black"
           VerticalAlignment="Top"
           Width="{StaticResource Test}"
           x:Name="pad1"
           Tap="pad1_tap"           
 />