将WPF Sankey对象添加到窗口表单错误

时间:2018-08-13 14:27:26

标签: c# wpf winforms

我目前正在尝试在Windows窗体应用程序内部为WPF使用sankey图库(Here)(因为我找不到Windows窗体的sankey图)。

经过一些研究,我发现您可以通过创建WPF控件库,然后在Windows窗体(Here)上使用该控件来做到这一点。

为了测试这一点,我创建了两个项目。一个是Windows窗体应用程序,另一个是WPFControlLibrary。 WPFControlLibrary引用了sankey git库。

当我尝试将控件添加到Windows窗体应用程序内部的窗体中时,出现以下错误: enter image description here

我相信这是WPFControl库内部的代码(与示例项目类:sankey github库中的mainViewModel.cs内部的代码相同):

 sankeyLabelStyle1 = (Style)Application.Current.FindResource("SankeyLabelStyle1");
        sankeyLabelStyle2 = (Style)Application.Current.FindResource("SankeyLabelStyle2");
        sankeyToolTipTemplate1 = (ControlTemplate)Application.Current.FindResource("SankeyToolTipTemplate1");
        sankeyToolTipTemplate2 = (ControlTemplate)Application.Current.FindResource("SankeyToolTipTemplate2");

所以我认为问题是:当我将控件拖放到窗体上时,将调用函数“ Application.Current”,并返回窗体应用程序而不是WPFControlLibrary应用程序。由于表单应用程序没有WPF资源,因此会引发此错误。

为了测试这个想法,我尝试将app.config中的资源从WPFControlLibrary复制到Winform库,但是出现以下错误:

"An unhandled exception of type 'System.TypeInitializationException' occurred in WindowsFormsIntegration.dll

Additional information: The type initializer for 'System.Windows.Forms.Integration.AvalonAdapter' threw an exception."

我不是专家,所以我一直在尝试尽可能多地阅读。我阅读/研究的任何可能的链接将不胜感激。

问题:如何解决以上错误?如果提出了另一种更容易/更好的工作方法/思想,以将Sankey图合并到窗口表单中,我也将接受。

更新为发布:尝试将WPFControlLibrary中的配置资源复制到Winforms时,没有出现相同的错误。我已更新错误。

0 个答案:

没有答案