1

如何在 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.Resources”时,我收到一条错误消息:无法识别或无法访问成员资源。

4

2 回答 2

4

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

<phone:PhoneApplicationPage.Resources>
    <!-- your resource -->
</phone:PhoneApplicationPage.Resources>
于 2013-03-10T23:15:33.943 回答
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"           
 />
于 2013-03-10T23:11:24.480 回答