在WPF应用程序中使用自定义WindowsForms / DirectX Control

时间:2014-01-22 10:32:23

标签: c# .net wpf winforms directx

我想重用一个使用dotNet2.0开发的自定义WindowsForms控件,并在当前解决方案(WPF,dotNet4.0)中使用一些Microsofts DirectX和Direct3D库(DX9.0c)

我尝试通过System.Windows.Forms.Integration.WindowsFormsHost集成它。

     private void Window_Loaded(object sender, RoutedEventArgs e)
     {
        // Create the interop host control.
        System.Windows.Forms.Integration.WindowsFormsHost host =
            new System.Windows.Forms.Integration.WindowsFormsHost();

        // Create the Signal control.
        Control_Signal myCS = new Control_Signal();

        // Assign the Signal control as the host control's child.
        host.Child = myCS;
        // Add the interop host control to the Grid 
        // control's collection of child controls. 
        this.myGrid.Children.Add(host);
    }

此外,我必须摆脱“混合模式程序集是针对运行时的版本'v1.2.xxx'构建的,如果没有其他配置信息,则无法在4.0运行时加载。”在我的app.config文件中将 useLegacyV2RuntimeActivationPolicy 设置为TRUE会出错。

现在,当我在WPF应用程序中加载WindowsForms控件时,VisualStudio输出注释“类型异常”Microsoft.DirectX.Direct3D.DriverInternalErrorException“出现在Microsoft.DirectX.Direct3D.dll

并且GUI显示代替控件错误“无法初始化MS DirectX!” 相同的控件在本机WindowsForms项目中完美运行。 (我在两个应用程序中引用相同的DirectX库)

现在我不知道从哪里开始调试此错误,(Direct3D.dll中的异常) 也许它的访问权限或权限问题与WinForms.Integration有关?

如果您需要查看控件:
http://pastebin.com/dk00vN5u

由于

0 个答案:

没有答案