Windows 10 UWP回答webview糟糕的PDF性能

时间:2016-04-27 14:30:33

标签: c# xaml pdf win-universal-app windows-10-mobile

我目前正在为我们的APP创建一个手册页面,可以从许多不同的页面调用,并且根据从中调用的页面调用,它将显示该页面的相关手册。最初我在此页面中添加了多个PDF。但是,在webview中加载的所有PDF文件都非常慢。最重要的是,当我向下滚动以查看其他手册,然后返回到页面顶部时,页面顶部的手动PDF将不得不重新加载,花费更多时间。 IOS中的相同PDF文件加载速度更快Android,但由于其性能,Windows手机几乎无法使用。

帮助打败此问题我将所有PDF文件转换为.PNG文件。这不仅降低了文件大小,而且还允许它们加载更快,并保持在页面上加载!

但是,如果可能的话,我希望这些手册是PDF文件。有没有办法将PDF文件添加到应用程序,但是快速加载,保持加载在页面上

此外,当涉及到PDF格式加载时,是否有其他人面临我的问题。

以下是我添加手册的代码:

    <ListView x:Name="MyScrollViewer" ScrollViewer.ZoomMode="Enabled" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Visible"  ScrollViewer.VerticalScrollMode="Enabled" ScrollViewer.HorizontalScrollMode="Auto">
        <ListViewItem>
            <Image Name="HelpManual" Source="{StaticResource BlankPage}" Width="{Binding Path=ViewportWidth, ElementName=MyScrollViewer}"/>
        </ListViewItem>
        <ListViewItem>
            <Image Name="HelpManual2" Source="{StaticResource BlankPage}" Width="{Binding Path=ViewportWidth, ElementName=MyScrollViewer}"/>
        </ListViewItem>
        <ListViewItem>
            <Image Name="HelpManual3" Source="{StaticResource BlankPage}" Width="{Binding Path=ViewportWidth, ElementName=MyScrollViewer}"/>
        </ListViewItem>
    </ListView>

每个PNG手册的来源都在页面资源中设置如下:

<BitmapImage x:Key="BlankPage" UriSource="" />
<BitmapImage x:Key="Manual1" UriSource="Assets\AppPages\HelpManuals\App-User-Guide-v1.4_Page_01.png" />
<BitmapImage x:Key="Manual2" UriSource="Assets\AppPages\HelpManuals\App-User-Guide-v1.4_Page_02.png" />
<BitmapImage x:Key="Manual3" UriSource="Assets\AppPages\HelpManuals\App-User-Guide-v1.4_Page_03.png" />

然后在“空白页面”的背景C#代码中更改每个图像的来源。 (这不算什么),需要哪个手册。 BackGround代码如下:

  void Page_LoadComplete(object sender, RoutedEventArgs e)
    {
        var lastPage = Frame.BackStack.Last().SourcePageType;

        if (lastPage.Name == "MainPage" || lastPage.Name == "ManualsPage")
        {
            HelpManual.Source = (ImageSource)Resources["Manual1"];
            HelpManual2.Source = (ImageSource)Resources["Manual2"];
            HelpManual3.Source = (ImageSource)Resources["Manual3"];

        }
        else if (lastPage.Name == "BluetoothPage")
        {
            HelpManual.Source = (ImageSource)Resources["Manual1"];
            HelpManual2.Source = (ImageSource)Resources["Manual2"];
            HelpManual3.Source = (ImageSource)Resources["Manual1"];
            HelpManual4.Source = (ImageSource)Resources["Manual4"];
        }
        else if (lastPage.Name == "PowerPage")
        {
            HelpManual.Source = (ImageSource) Resources["Manual3"];
        }

任何帮助都会受到极大的赞赏,以帮助提高PDF加载性能!

0 个答案:

没有答案