我们从 WinForms 迁移到 WPF...慢慢地 =)
不,我们将 WPF 用户控件与 ElementHost 一起使用。
是否可以在这种情况下定义应用程序范围的资源?在纯 WPF Application.Resources 中代表它。但是与 WinForms 集成时没有 WPF 应用程序。
您可以创建一个通用ResourceDictionary并将其添加到您的 UserControls 的资源中。这样,您只需在一个位置更改样式。
Dictionary1.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</ResourceDictionary>
并使用MergedDictionarys将其添加到您的 UserControl
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary1.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
或者像这样将它添加到控件的资源中
<UserControl.Resources>
<ResourceDictionary Source="Dictionary1.xaml"/>
</UserControl.Resources>
即使您的项目是带有几个单独 WPF 表单或控件的 WinForms 项目,您也可以使用 WPF 应用程序对象。该对象不会为您预先创建,但如果您手动创建它,只需new App()
(甚至没有派生类new System.Windows.Application()
),您项目中的所有内容都会看到它。