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没啥区别了。

posted @ 2022-12-13 16:03  slowstart  阅读(278)  评论(0编辑  收藏  举报