具有自定义 Telerik 主题的 C# Winforms:嵌入式资源和 ThemeResolutionService.LoadPackageResource

C# Winforms with custom Telerik theme: embedded resource and ThemeResolutionService.LoadPackageResource

我正在使用自定义主题并将其作为 .tssp 文件加载到我的 Program.cs 中(有效):

ThemeResolutionService.LoadPackageFile("data\myThemeName.tssp");

但是我想加载 .tssp 文件作为嵌入资源。因此,我将文件作为资源文件添加到 Resources.resx 下,并将以下方法放入我的 Program.cs:

ThemeResolutionService.LoadPackageResource("myProject.Properties.Resources.myThemeName");

但是出现如下错误:

Specified resource does not exist in the provided assembly.

引号内的路径应该是正确的,因为 IDE 在我删除引号时找到了它。我还在相同的资源路径下使用不同的图像作为嵌入资源。

这个 Telerik 方法是有问题还是我做错了什么?

ThemeResolutionService class 公开了两个允许您加载主题包的静态方法:

  • LoadPackageResource:此方法加载包含在项目中的主题包文件作为 EmbeddedResource。这是加载主题包的首选方法,因为在部署应用程序时不会更改包的资源路径。路径构造为DefaultProjectNamespace.ThemeFolder.ThemePackageFile。仅当包包含在主项目目录下的文件夹中并且项目编程语言为 C# 时,才应使用 ThemeFolder 部分。在 VB.NET 项目中,即使包文件包含在文件夹中,您也不需要包含 ThemeFolder 部分。

    ThemeResolutionService.LoadPackageResource("SamplesCS.CustomTheme.tssp");

        public RadForm1()
    {
        InitializeComponent(); 

        ThemeResolutionService.LoadPackageResource("CustomThemeResourcePackage.Resources.FluentDarkModified.tssp");
        ThemeResolutionService.ApplicationThemeName = "FluentDarkModified";
    }

结果:

  • LoadPackageFile:此方法从系统上的指定目录加载文件。根据目录的定义方式(完整或相对),当应用程序部署在另一台机器上时,包的路径可能会发生变化。

    ThemeResolutionService.LoadPackageFile(@"C:\CustomTheme.tssp");