在XAML中使用全局资源(应用程序与页面)

时间:2015-01-02 00:39:55

标签: c# xaml visual-studio-2013 windows-phone-8.1

我对Windows Phone 8.1开发基本不熟悉。但是,我一直想知道定义页面资源和应用程序资源之间的区别是什么?

虽然他们似乎做了完全相同的事情,但我猜这两者之间肯定存在一些差异,而这就是我想知道的事情。我为什么要选一个呢?

我有一个非常简单的例子可以帮助你回答我的问题。

<Page.Resources>
    <SolidColorBrush x:Key="MyBrush" Color="Navy"/>
    <Style TargetType="Button" x:Key="MyButtonStyle">
        <Setter Property="Background" Value="Firebrick"/>
        <Setter Property="FontFamily" Value="Arial Black"/>
        <Setter Property="FontSize" Value="30"/>
    </Style>
</Page.Resources>

           vs 
    <Application.Resources>
    <SolidColorBrush x:Key="MyBrush" Color="Navy"/>
    <Style TargetType="Button" x:Key="MyButtonStyle">
        <Setter Property="Background" Value="Firebrick"/>
        <Setter Property="FontFamily" Value="Arial Black"/>
        <Setter Property="FontSize" Value="30"/>
    </Style>
</Application.Resources>

感谢您的时间! ! :))

1 个答案:

答案 0 :(得分:2)

应用程序资源是global,因此从概念上讲,它们应该只包含适用于每个页面/控件或应用程序中任何其他对象的资源。

页面/控件和类似资源是local,因此它们不能在这些对象之外重用。

然而,使用一个与另一个具有性能和其他含义。通常,全局应用程序资源倾向于提高XAML与常规本地资源的性能(除非您使用的静态本地资源性能更好)。

在清洁设计方面,使用应用程序资源会促进紧密耦合(这并不好),因为您的页面和相关资源不是自包含的。