如何使WinForms表单作为AvalonDock中的DockableContent工作?

时间:2010-07-12 04:07:27

标签: c# wpf winforms winforms-interop avalondock

我可以使用WinForms控件,但不能使用整个表单:

        var foo = new DockableContent();
        foo.Title = "Foo";
        foo.Name = "FooName";


        var c = new WindowsAppFramework.RenderTargetUserControl();
        c.Dock = System.Windows.Forms.DockStyle.Fill;
        c.AutomaticUpdateFPS = 60;

        var host = new System.Windows.Forms.Integration.WindowsFormsHost();
        host.Child = c;

        foo.Content = host;
        foo.ShowAsDocument(dockManager);
        foo.Focus();

是否可以使用整个表格?我想在应用程序中使用现有的表单。

1 个答案:

答案 0 :(得分:7)

您可以将表单转换为子控件:

  var frm = new Form1();
  frm.TopLevel = false;
  frm.Visible = true;
  frm.FormBorderStyle = FormBorderStyle.None;

基本上把它变成UserControl。