Wpf 使用F从控制台应用程序控制WebBrowser
我有一个.netcoreapp3.1控制台应用程序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
<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=
浏览应用程序。运行