我有一个WPF窗口,当作为Windows应用程序运行时可以正常打开。我试图从FS Interactive推出它,但它不会打开。
我使用了建议here的生成函数:
> val ui : Lazy<System.Windows.Application * System.Threading.Thread> =
Value is not created.
> val spawn : f:('a -> 'b) -> x:'a -> 'b
...但是当我使用
运行它时spawn loadWindow ()
FSi窗口只返回Window属性:
> val it : Window =
> System.Windows.Window
> {ActualHeight = 0.0;
> ActualWidth = 0.0;
> AllowDrop = ?;
> AllowsTransparency = ?;
> AreAnyTouchesCaptured = ?;
> AreAnyTouchesCapturedWithin = false;
以下是作为应用程序运行时可以正常工作的代码:
let loadWindow() =
let window = MainWindow2()
grid3() |> window.MyStack.Children.Add |> ignore
window.Root
[<STAThread>]
(new Application()).Run(loadWindow()) |> ignore
我从FSi引用了以下内容:
#r "System.Xaml.dll"
#r "UIAutomationTypes.dll"
#r "WindowsBase.dll"
#r "PresentationFramework.dll"
#r "PresentationCore.dll"
#r "C:\VS Projects\Numerics\packages\FSharpx.TypeProviders.Xaml.1.8.41\lib\40\FSharpx.TypeProviders.Xaml.dll"
open System
open System.Windows
open System.Windows.Controls
open FSharpx
任何建议都非常感谢!
答案 0 :(得分:0)
我意识到自己的错误。
在返回窗口之前,我只需要一个win.Show()
。 Application.Run()
执行此操作,但是从spawn函数调用不会。