我有一个WPF应用程序,我需要与WinForms集成。正如在某些论坛中所建议的那样,我从项目中删除了window1.xaml和app.xaml,然后将项目类型更改为类库。之后,当我在WinForms项目中添加DLL引用时,我收到错误'提供值'System.Windows.StaticResourceExtension'引发异常。 这是什么原因?
此外,由于我使用资源字典,我在app.xaml中添加了合并字典中的所有资源字典引用。现在只有用户控制我该怎么做?
我观察到的另一个例外是'提供价值'System.Windows.Markup.StaticResourceHolder'抛出异常。'
提前致谢...
答案 0 :(得分:2)
我通过删除app.xaml和window将我的wpf应用程序转换为DLL。 确保如果您使用的是ResourceDictionary文件,那么每个用户控件都应该将它作为合并字典引用,并且如果存在嵌套用户控件,则每个此类引用对于其自己的用户控件是本地的,即用户控件中的用户控件所有用户控件应该引用资源字典文件。
答案 1 :(得分:0)
您所描述的是一个复杂的过程,涉及大量的重构和代码提取。
您应该做的是向Visual Studio解决方案添加一些单独的项目 - 并将所有可重用逻辑移至类库项目。您需要调整命名空间等等......但是所有可重用的代码都应该去那里。
然后你的WPF应用程序应该引用类库项目,你可以继续使用它......现在你可以在解决方案中使用类库来获得一个Win Forms项目......
实际上,您正在尽可能地从UI中提取您的域代码...您可能会编写一个Web应用程序,然后使用相同的库...