【问题标题】:How to style my application in WPF using app.xaml如何使用 app.xaml 在 WPF 中设置我的应用程序的样式
【发布时间】:2012-05-27 18:13:01
【问题描述】:

我已成功将资源字典(包含我的主题/样式模板资源集合)添加到我的 Window.Resources。这适当地设置了我的每个窗口的样式。但是,当我添加同一行时:

<ResourceDictionary Source="BureauBlack.xaml" x:Key="BureauBlackKey"/>

我的 App.xaml 没有任何变化。

编辑#1:

<Application x:Class="EventPlanner.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:vm="clr-namespace:EventPlanner.ViewModels"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <vm:ViewModelLocator x:Key="ViewModelLocatorKey"/>
            <ResourceDictionary Source="BureauBlack.xaml" x:Key="BureauBlackKey"/>
        </ResourceDictionary>
    </Application.Resources>
</Application>

【问题讨论】:

  • 我不明白你的问题,但你知道资源查找是如何工作的,对吗?假设您在 app.xaml 和窗口中有一个资源,两者的名称相同。如果您现在在窗口中搜索它,将采用第一个出现的位置,即窗口中的资源。 See 。顺便提一句。资源字典不需要 x:Key,它不会造成伤害,但也不会做任何事情。
  • 如果我不添加一个键,它会给我一个错误,说资源字典中的所有内容都需要一个键值。我将发布我的 App.xaml(应该这样做才能开始)。
  • 您不会像那样添加 ResourceDictionaries。如果要添加用于搜索资源的 xaml,类似于包含,请将其添加到 MergedDictionaries

标签: wpf styles app.xaml


【解决方案1】:

您需要将主题资源字典添加到MergedDictionaries 集合中:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="BureauBlack.xaml" />
        </ResourceDictionary.MergedDictionaries>

        <!-- other resources go here -->

        <vm:ViewModelLocator x:Key="ViewModelLocatorKey"/>

    </ResourceDictionary>
</Application.Resources>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多