我知道将WebBrowser放在Pivot/RadSlideView控件中是一个坏主意。
无论如何,我是这样做的:

<phone:PhoneApplicationPage
    x:Class="**.HtmlView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:controls="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
    mc:Ignorable="d"
    Style="{StaticResource LeafPageNavigationStyle}">

    <controls:Pivot x:Name="Html" ItemsSource="{Binding Items}"
                    Style="{StaticResource HeaderlessPivot}">
        <controls:Pivot.ItemTemplate>
            <DataTemplate>
                <phone:WebBrowser Source="{Binding}" />
            </DataTemplate>
        </controls:Pivot.ItemTemplate>
    </controls:Pivot>

</phone:PhoneApplicationPage>

基本上,我想使用数据透视在我通过ViewModel提供的URI处的HTML文档数组中滑动,该ViewModel仅将数组包装在Caliburn.Micro OneActive Conductor中:
namespace DSBMobile.ViewModels
{
    public class HtmlViewModel : Conductor<Uri>.Collection.OneActive
    {
        private readonly IUnburyableState<Uri[], HtmlViewModel> _state;

        public HtmlViewModel(IUnburyableState<Uri[], HtmlViewModel> state)
        {
            _state = state;
            Items.AddRange(_state.State.ForceGetValue());
        }
    }
}

这在我手动部署的调试和发行版本中运行得很好。该应用程序通过了商店施加的所有测试,但是当我尝试在应用程序中打开此特定 View 时,它崩溃了,没有任何机会重定向到Telerik MessageBox。

一旦移除外部Pivot并相应地调整了ViewModel,它就会平滑运行。就像我说的那样,崩溃仅发生在生产中。 Application.UnhandledException处理程序无法使应用吞入异常并显示错误。

自几个月以来,这真是错综复杂,困扰着我。谁能解决这个错误或为我指明一个有意义的方向?对于显示多个有效的Web链接,我还希望获得更多的WP-ish建议。

最佳答案

事实证明,我得到了UnauthorizedAccessException,这说明我缺少了ID_CAP_WEBBROWSERCOMPONENT功能。这让我感到困惑,直到我终于看看docs为止:



设置了x:Name后,我终于可以拥有一个万无一失的体验。
就我个人而言,这是有史以来最烦人的错误。尽管我没有支付任何开发人员费用,这是我以前不知道的,但我可以在商店中上传Beta版本,这很有帮助。

TLDR:RTFM。

关于c# - 在数据透视中使用Web浏览器时生产崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21102694/

10-17 01:19