如何在没有XAML的情况下使用F#和WPF创建Hello World应用程序?
具体来说,实现这一目标的步骤是什么?
例如,启动应用程序需要哪些文件?
[UPDATE]
我尝试了一些建议并收到以下错误:
我确认该项目已设置为启动项目.我不确定我还需要做什么.
Fyo*_*kin 10
首先要理解的是:XAML只是一种(据说更简洁)表示对象图的方式.(顺便说一句,XAML不需要指定WPF UI,它可以用于其他事情......理论上)
XAML标记对应于实例化.NET类,属性和嵌套标记(大致)对应于对象属性.除此之外没有魔法.所有XAML都只是创建了一堆对象并将它们连接在一起.
例如,这个:
<Button x:Name="myButton">Click!</Button>
Run Code Online (Sandbox Code Playgroud)
大致相当于这个:
let myButton = Button( Content = "Click!" )
Run Code Online (Sandbox Code Playgroud)
(附加的属性,绑定,类型转换器等确实有点复杂,但我不会在这里讨论所有这些)
第二个要知道的关键是如何编码入口点.为此,有三个简单的步骤:
ApplicationApplication.MainWindowApplication.Run这是一个最小的全功能应用程序(以F#脚本的形式):
#r "WindowsBase"
#r "PresentationCore"
#r "PresentationFramework"
open System.Windows
open System.Windows.Controls
let button = Button(Content="Click me!")
let label = Label(Content="Hello")
button.Click.Add (fun _ -> label.Content <- "World")
let layout = StackPanel()
layout.Children.Add label
layout.Children.Add button
let window =
Window(
Content = layout,
Visibility = Visibility.Visible)
let app = Application(MainWindow = window)
app.Run()
Run Code Online (Sandbox Code Playgroud)