Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 使用F从控制台应用程序控制WebBrowser_Wpf_F# - Fatal编程技术网

Wpf 使用F从控制台应用程序控制WebBrowser

Wpf 使用F从控制台应用程序控制WebBrowser,wpf,f#,Wpf,F#,我有一个.netcoreapp3.1控制台应用程序 <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <UseWpf>true</UseWpf&g

我有一个.netcoreapp3.1控制台应用程序

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <UseWpf>true</UseWpf>
    <UseWindowsForms>true</UseWindowsForms>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Program.fs" />
  </ItemGroup>
</Project>
在Program.fs中,我正在实例化WebBrowser控件并处理DocumentCompleted事件

let run() =
    let uri = "https://www.microsoft.com"
    let browser = new WebBrowser()
    browser.DocumentCompleted.Add(fun _ -> handlePage browser uris)
    browser.Navigate(uri)

[<STAThread>]
[<EntryPoint>]
let main argv =
    run()
    Console.ReadKey() |> ignore
    0 
当我运行它时,DocumentCompleted事件从未被触发或处理-程序一直运行到最后

我失踪了吗

提前谢谢

我失踪了吗

信息泵。您需要一个调度程序来运行WPF应用程序

另一方面,您使用的是WinForms WebBrowser,它公开DocumentCompleted事件。WPF变量具有LoadCompleted事件,请参阅此

然而,在WPF中,加载的概念与可视化树有关。由于不呈现控件,因此将永远不会引发事件。如果我们改用导航事件,我们可以轻松到达那里

开放系统 开放系统 打开System.Windows.Controls 类型浏览器应用程序= 继承应用程序 快跑= 让uri=https://www.microsoft.com 让浏览器=新的网络浏览器 browser.Navigated.Addfun->Console.WriteLineDone导航 浏览器.导航器 跑步; [] 让主argv= 浏览应用程序。运行 我失踪了吗

信息泵。您需要一个调度程序来运行WPF应用程序

另一方面,您使用的是WinForms WebBrowser,它公开DocumentCompleted事件。WPF变量具有LoadCompleted事件,请参阅此

然而,在WPF中,加载的概念与可视化树有关。由于不呈现控件,因此将永远不会引发事件。如果我们改用导航事件,我们可以轻松到达那里

开放系统 开放系统 打开System.Windows.Controls 类型浏览器应用程序= 继承应用程序 快跑= 让uri=https://www.microsoft.com 让浏览器=新的网络浏览器 browser.Navigated.Addfun->Console.WriteLineDone导航 浏览器.导航器 跑步; [] 让主argv= 浏览应用程序。运行