从WPF页面调用样式表

本文关键字:样式 调用 WPF | 更新日期: 2023-09-27 18:18:38

我有一个非常特殊的情况,说实话我有点迷路了。我有一个WPF应用程序是从一个Windows窗体应用程序内运行。为了运行这个,我正在创建主窗口。xaml从我的WinForms代码。这意味着App.xaml永远不会受到攻击。

我已经尝试了在我的应用程序中使用样式表的所有不同方法。Xaml,但因为这不是运行,我认为我需要从每个页面调用我的样式表(类似于web)。
<ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="TextStyle.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

这是代码,我看到这么多的在线和公平的,如果我从我的App.xaml调用它将在设计器中工作,但因为在运行时它从来没有击中,所以它不会工作。

我甚至尝试实例化App.xaml文件从我的WPF应用程序,但我不确定如果我搞砸了,或者它只是不工作,但它不喜欢它

是否有类似的东西可以在WPF页面或窗口上调用?

对不起,我是WPF的新手,可以使用基础知识,但是我在这方面很吃力

谢谢你的帮助。

从WPF页面调用样式表

App。当在WinForm上托管WPF组件时,xaml不能运行。看一看有关如何在托管的WPF应用程序中管理资源的几种方法,请访问http://drwpf.com/blog/2007/10/05/managing-application-resources-when-wpf-is-hosted/。

在你的情况下,我认为问题是你设置在源属性的方式,尝试使用包url,例如,

<Page.Resources>
     <ResourceDictionary>
         <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/theNameOfTheResourceAssembly;component/resourceName.xaml" />
         </ResourceDictionary.MergedDictionaries>
      </ResourceDictionary>
</Page.Resources>

资源也应该被格式化为:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    x:Class="theNameOfTheResourceAssembly.resourceName">
   ...resource contents
</ResourceDictionary>