wpf WebView2 打印
如果想要在wpf中使用浏览器的打印功能如何实现呢?可以选择CefSharp。但是CefSharp打包的程序似乎是包含浏览器内核,导致程序包太大。现在用WebView2试试。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<DockPanel>
<Button DockPanel.Dock="Right" Content="GO" Click="Button_Click"/>
<TextBox Text="{Binding Url}"/>
</DockPanel>
<wpf:WebView2 Name="webView1" Grid.Row="1"/>
<StackPanel Grid.Row="2" Orientation="Horizontal">
<Button Height="25" Width="50" Name="BtnPrint" Click="BtnPrint_Click" Content="打印"/>
</StackPanel>
</Grid>
private void BtnPrint_Click(object sender, RoutedEventArgs e)
{
_ = webView1.CoreWebView2.ExecuteScriptAsync("window.print();");
}
private void Button_Click(object sender, RoutedEventArgs e)
{
webView1.CoreWebView2.Navigate(Model.Url);
}
WebView2用的是本机的Edge,所以没有Edge浏览器可能会报错。或者安装nuget包,不过这样就和CefSharp没啥区别了。