C# 在运行时加载Microsoft.Windows.Common-Controls

C# 在运行时加载Microsoft.Windows.Common-Controls,c#,.net,wpf,manifest,C#,.net,Wpf,Manifest,我有一个类库,通过COM从第三方RAD应用程序Omnis Studio调用,该库提供.NET功能,如SQL/Web服务桥。我不得不添加更多的方法来显示WPF表单,该表单将事件激发回原始应用程序 这一切都很好,项目必须是一个类库,不能是一个可执行文件,这意味着我不能在应用程序选项选项卡中为项目选择清单。我现在遇到的主要问题是,如果清单文件中没有下面的XML,我就无法获得现代的windows对话框按钮,因此消息框中的按钮看起来有些过时 <!-- Enable themes for Window

我有一个类库,通过COM从第三方RAD应用程序Omnis Studio调用,该库提供.NET功能,如SQL/Web服务桥。我不得不添加更多的方法来显示WPF表单,该表单将事件激发回原始应用程序

这一切都很好,项目必须是一个类库,不能是一个可执行文件,这意味着我不能在应用程序选项选项卡中为项目选择清单。我现在遇到的主要问题是,如果清单文件中没有下面的XML,我就无法获得现代的windows对话框按钮,因此消息框中的按钮看起来有些过时

<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
那么,有没有一种方法可以通过在清单文件中包含这些行,但通过类库入口点中的定制代码执行这些行来实现相同的效果呢

谢谢

保罗

编辑

为了澄清Rahmound的评论:

我认为你不理解这个问题。首先,我没有提到这是一个Windows窗体应用程序,项目中没有Windows窗体程序集引用,只有WPF表示程序集。该项目必须是一个类库,作为第三方应用程序,它是一个C++非托管应用程序只能消费.NET类库,需要显示一个非常自定义的窗体,这可以在当前的项目中实现,我选择了WPF,因为这是我的大部分桌面应用技能所在,它适合WPF的数据绑定模型。我们对最终结果非常满意,我唯一的问题是我的应用程序需要使用XP+主题的Windows控件,如果上面的部分不在应用程序清单中,则消息框使用老式的“确定”、“取消”按钮,这与我的应用程序中的所有其他按钮不一致


我需要的是在没有嵌入式app.manifest的情况下实现同样的功能。

我无法解决这个问题,时间不多了,根据Hans的建议,我最终使用了,因为我还想使用其他控件,如颜色选择器。

当应用程序的其余部分是Windows窗体时,为什么要使用WPF?此外,如果您需要一个类库,为什么要从创建WPF应用程序开始呢?我应该补充一点,您可以在Windows窗体中承载WPF内容。@Ramhound我已经在问题后面附加了进一步的信息。主EXE中的清单选择了所有应用程序窗口中使用的视觉样式。包括你的。在WPF应用程序中,这是一个奇怪的问题,样式是它的中间名称。我想,创建您自己的MessageBox。@HansPassant谢谢您的建议,这是一个奇怪的场景,但通常情况下,业务需要违反标准逻辑,我今天上午实际上正在考虑这样做,或者使用WPF扩展工具包。
<dependentAssembly>
  <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0"
      processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*"
    />
</dependentAssembly>