请教各位在WPF工程里面启动窗口是否可以是类似Form.cs的窗口,我想在工程启动窗口加载一个.COM组件,这个组件要求对象必须是Form.CS的对象,由于是合作单位打包的组件又比较强势一直不合作改,所以我想在启动窗口改成window窗体如“Form.cs”,我也试过通过WindowsFormsHost.child来加载,但是会报窗体时顶级类异常。所以在此请教各位是否有什么比较好的方法

解决方案 »

  1.   

    你可以自己 手动创建一个 Form 出来,然后加载自己的组件。
    App app = new App();
    app.InitializeComponent();
    app.Run();
      

  2.   

    在工程中添加一个form窗体,在启动时代替启动窗体,别忘了引用WinForm的相关类库。
      

  3.   

    你这段代码是些在WPF写启动窗口的下面的APP类下面吗?我是想知道在WPF工程下面的启动窗口能不能支持WINDOWS窗台而不是原来的.XAML的窗口
      

  4.   

    WPF 和 Winform 没有本质的区别。
    WPF 在启动 Window 之前需要加载 App 的 资源等等。
    除此之外是一致的。我的代码是在 Main 函数下面的。我的程序自定义 Main ,是因为我需要处理单实例的问题。
      

  5.   

    我知道要设置启动窗口只有在两个地方如APP.XAML那边设置 StartupUri属性又或者在APP.XAML.cs里面自定义MAIN方法来启动。可是在这两个地方我都没办法替换默认的窗体。如  StartupUri="Form1.cs"会报参数无效,又或者:  [STAThread]
                  static void main() {
                Application app = new Application();
                Form1 form = new Form1();
                app.Run(form);
            }
    也会报参数无效,你能讲的细一点吗?
      

  6.   


    我知道要设置启动窗口只有在两个地方如APP.XAML那边设置 StartupUri属性又或者在APP.XAML.cs里面自定义MAIN方法来启动。可是在这两个地方我都没办法替换默认的窗体。如 StartupUri="Form1.cs"会报参数无效,又或者: [STAThread]
      static void main() {
      Application app = new Application();
      Form1 form = new Form1();
      app.Run(form);
      }
    也会报参数无效,你能讲的细一点吗?
      

  7.   

    不是替换启动窗体的参数,而是手动显示一个Form窗体当做启动窗体