此问题不会影响WinForms。

我已经从github站点下载了最低限度的示例:

https://github.com/cefsharp/CefSharp.MinimalExample

据我所知,一切都是最新的-我使用NuGet来确保已安装最新的CefSharp.Common,CefSharp.Wpf等-当前版本53。

当我用它浏览网页时,就可以了。问题是当我尝试查看基于PDF的页面时,例如:

http://www.cbu.edu.zm/downloads/pdf-sample.pdf

因此,在MainWindow.xaml中,我将“地址”属性绑定(bind)到该值,而不是“www.google.com”:

<Window x:Class="CefSharp.MinimalExample.Wpf.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:wpf="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
    Title="{Binding Path=Title, ElementName=Browser, Converter={StaticResource TitleConverter}}"
    WindowState="Maximized">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <wpf:ChromiumWebBrowser Grid.Row="0"
                            x:Name="Browser"
                            Address="http://www.cbu.edu.zm/downloads/pdf-sample.pdf" />
    <StatusBar Grid.Row="1">
        <ProgressBar HorizontalAlignment="Right"
                     IsIndeterminate="{Binding IsLoading, ElementName=Browser}"
                     Width="100"
                     Height="16"
                     Margin="3" />
        <Separator />
        <!-- TODO: Could show hover link URL here -->
        <TextBlock Text="{Binding Address, ElementName=Browser}"/>
    </StatusBar>
</Grid>

当我运行示例时,为了导航至此PDF,屏幕将保持空白,并且进度控件不会更新:

c# - 使CefSharp正确处理WPF中的PDF文件-LMLPHP

...除非我做一些事情,例如最大化浏览器窗口的大小或移动它等,否则我可以查看它:

c# - 使CefSharp正确处理WPF中的PDF文件-LMLPHP

此后,还有另一个奇怪的问题,即滚动条和+/-按钮似乎无响应。我注意到,例如,如果确实按下“+”按钮,然后再按下另一个操作(例如最大化/还原),则预期的“+”操作似乎已经执行。同上滚动条和其他操作。

对于WinForms最小示例,它不会表现出此行为,如果有帮助,则仅显示Wpf。

任何建议,不胜感激。

最佳答案

已在GitHub站点上作为问题#1799的副本提出:

WPF/OffScreen PDF Viewer not working #1799

在发布版本55之前,网站上说明的解决方案是:

“建议的解决方法是在Ceforum上建议的计时器上调用Invalidate()

您可以回滚到51并使用disable-surfaces或等待55版发布。”

我发现回滚到以前的版本对我有用。

更新2019年1月21日

较新版本的CefSharp不再是问题。

关于c# - 使CefSharp正确处理WPF中的PDF文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40505140/

10-13 07:38