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

Using global resources in XAML (Application vs Page)

我基本上是 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>

感谢您的宝贵时间! ! :))

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

Page/Control 和类似的资源是 local,因此它们不打算在这些对象之外重复使用。

然而,使用一个与另一个相比会产生性能和其他影响。一般来说,全局应用程序资源往往会提高 XAML 与常规本地资源的性能(除非您使用的是性能更好的静态本地资源)。

就简洁设计而言,使用应用程序资源会促进紧密耦合(这不好),因为您的页面和相关资源不是独立的。