WPF开始新的Winform Cefsharp

时间:2017-11-10 11:23:19

标签: c# wpf winforms cefsharp

我一直在WPF工作并试图从该领域开始Winform。唯一的解决方案是将其作为ShowDialog()打开。这是一个错误还是我们可以期待将来出现任何问题? 我的其他程序位于同一个解决方案中,但名称空间不同。

WindowsFormsApplication1.Form1 program2 = new WindowsFormsApplication1.Form1();
program2.ShowDialog();

2 个答案:

答案 0 :(得分:1)

我刚试过这个,它对我有用:

public partial class MainWindow : Window
{
    private Form winForm;
    public MainWindow()
    {
        InitializeComponent();
    }

    private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
        winForm = new WinForm1();
        winForm.Show();
    }
}

enter image description here

我认为您的问题很可能是由于您program2在尝试呼叫Show后立即超出范围,因此关闭它的速度比您看到的要快。 ShowDialog工作的原因是因为它是一个阻塞调用,将窗口保持在范围内并在关闭之前打开。

尝试在WPF program2类中将Window声明为字段,而不是作为局部变量。这将使其保持在范围内。

答案 1 :(得分:0)

我发现了问题...... program2.Show()无效的原因是因为Cefsharp在第二个程序启动期间通过javascript加载进度条(Javascript)没有加载。您可以通过将其标记为

来识别Cefsharp的这些问题
 if (browser.CanExecuteJavascriptInMainFrame)
                    {
                        WindowsFormsApplication1.Form1 program2 = new WindowsFormsApplication1.Form1();
                        program2.Show();
                    }