Xamarin.Forms 在 XAML 中使用 ResourceDictionary 时应用程序挂起

Xamarin.Forms application hangs when using ResourceDictionary in XAML

我有 Xamarin.Forms 应用程序,我想在 ListView 上显示来自本地数据库的图像。图像以 Base64 编码存储,因此我需要使用对此 的回答中描述的转换器。我面临的问题是,如果我在 ContentPage.Resources 页面中的 ContentPage 标记之后包含 ContentPage.Resources 代码,当我尝试打开该页面时,应用程序将在我的 phone 上冻结。

资源码:

<ContentPage.Resources>
    <ResourceDictionary>
        <local:ConverterBase64ImageSource x:Key="CustomImageConverter" />
    </ResourceDictionary>
</ContentPage.Resources>

我还在 ContentPage 标签内创建了本地标签:xmlns:local="clr-namespace:MyApp;assembly=MyApp"

我已经将 class ConvertedBase64ImageSource 添加到 Page.xaml.cs 文件中,转换器的代码是就像上面链接问题的 awnser 中提供的一样。

似乎 XAML 代码破坏了我的应用程序中的某些内容,但我没有收到任何错误,只是应用程序变得没有响应并且不会打开该页面而是显示 OS 消息强制关闭应用程序。我是 运行 调试模式下 VS2015 中的应用程序,并且该页面上的 OnAppearing() 方法从未达到我的断点。

我应该在其他地方插入 ContentPage.Resources 代码还是我遗漏了什么?

我正在使用 Xamarin 版本 4.5.0.486

请仔细检查 ConverterBase64ImageSource class 是否确实在 MyApp 命名空间中?例如不是MyApp.Converters,那就不行了。

它不应该挂起,但给你一个错误,但谁知道呢!