Visual Studio 2019中Elmish.WPF的新手设置

问题描述

冒着击败一匹死马的风险,我想在使用Elmish.WPF的初始设置中清楚一点。

我的意图是基本上拥有两个项目:

  1. FrontOfficeV-一个容纳XAML,Windows等的C#项目。
  2. 模型-Elmish.WFP,F#代码等的F#项目。

尝试了大多数项目类型选项(Visual Studio 2019)之后,我选择了:控制台应用程序(.NET Framework)用于C#项目的C#。

这创建了C#项目,该项目认为:目标框架:.NET Framework 4.7.2输出类型:控制台应用程序。这也创建了一个“ program.cs”文件

接下来,在C#控制台应用程序中使用ADD-> New Item不会显示选项。它确实显示用户控制(WPF)” 选项。因此,添加了“用户控件(WPF)”,并将其重命名为“ MainWindow”。然后,我将xaml中的element标签从UserControl更改为Window,并将后面的代码更改为继承自Window而不是UserControl。最后,我更改了项目属性以便将输出类型编译为: Windows应用程序。此C#项目现已标记为Visual Studio的“启动”项目。

接下来,使用以下代码创建F#模型项目:库(.NET Framework) F#Windows库。这创建了一个项目,认情况下为:目标框架:.NET Framework 4.7.2输出类型:类库。在F#类库中,添加一个程序– FrontOffice.fs,

/// This is the application's entry point. It hands things off to Elmish.WPF     
    let entryPoint (mainWindow: Window) =    
        Program.mkSimpleWpf init update bindings
        |> Program.runWindowWithConfig
                   { ElmConfig.Default with LogTrace = true; Measure = true; MeasureLimitMs = 1 }
                   mainWindow

最后,program.cs更改为:

public class Program
    {
        [STAThread]
        public static void Main(string[] args)
        {
            Application app = new Application();
            Window mainWindow = new MainWindow();
            Models.FrontOffice.entryPoint(mainWindow);
        }
    }

这里的重点是: Program.mkSimpleWpf。

为什么所有麻烦?我想使用完整的WPF / C#/ XAML好东西(例如主题自定义控件等),但是我不确定在F#中直接编译XAML可以做到这一点。我希望能够在XAML中使用F#数据类型,因此C#项目需要对F#模块的引用,因此在C#中创建窗口并将引用传递给F#模块entryPoint似乎更容易,例如以上。

问题:

  1. 上面的设置对Elmish.WPF是否正确?
  2. 是否有更好的设置来实现我的目标?
  3. 从Visual Studio 2019开始,xaml的F#编译是否适用于主题自定义控件等?我会遇到什么打?

感谢您对这些要点进行澄清。 TIA

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)