【问题标题】:How to put a WPF usercontrol inside a WInforms usercontrol?如何将 WPF 用户控件放入 WInforms 用户控件中?
【发布时间】:2015-09-22 11:06:03
【问题描述】:

如何在 winforms 用户控件 中添加 wpf 用户控件?尝试使用元素宿主托管 Wpf 用户控件,如下所示。添加的子控件在设计和运行时不显示。

public partial class WinformsUC: UserControl
{
    public WinformsUC()
    {
        InitializeComponent();
        try
        {
           var eH = new ElementHost {Dock = DockStyle.Fill, Child = new WpfUserControl()};
           Controls.Add(eH);
        }
        catch (Exception exception)
        {
            Log.Debug(Constructor : " + exception.Message);
        }
    }
}

【问题讨论】:

  • @user1874589 您确定您已将 Windows 用户控件添加到主窗口窗体并在 WPFUser 控件中添加了一些内容吗?你的代码对我很有用。
  • 是的,这是一个 windows 用户控件,而不是 wpf 用户控件,而 WPF 用户控件将 wpf 控件作为内容。

标签: wpf winforms


【解决方案1】:

您可以使用system.windows.forms.integration.elementhost 来做到这一点

例子:

private ElementHost ctrlHost;
private UIElement wpfUserControl;

// in the from the load event handler
ctrlHost = new ElementHost();
ctrlHost.Dock = DockStyle.Fill;
panel1.Controls.Add(ctrlHost);
wpfUserControl= new WpfUserControl();

//we need to manually call initializecomponent if it is not called
//in the constructor of your control
wpfUserControl.InitializeComponent();
ctrlHost.Child = wpfInputControl;

【讨论】:

    猜你喜欢
    • 2012-03-27
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多