2013-03-10 71 views
1

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

下面我有一个长方形,我想创建一个可以用来改变矩形的颜色的资源挖掘时:

<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'时,我收到一个错误消息:成员资源不被识别或无法访问。

回答

4

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

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

这就是我正在寻找的!谢谢。 – 2013-03-10 23:17:25

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"   
/> 
+0

对于wp8也是如此。您可以在Visual Studio中生成示例wp8应用程序并检查源代码。 – Anton 2013-03-10 23:15:31

+0

其实这个In32东西不适用于VS13 U1和WP8项目:( – ecth 2014-06-30 09:57:50

+0

http://msdn.microsoft.com/en-us/library/ee792002%28v=vs.110%29.aspx 这适用于我的情况:' 9001':) – ecth 2014-06-30 10:30:09