【问题标题】:Xamarin.Forms application hangs when using ResourceDictionary in XAML在 XAML 中使用 ResourceDictionary 时 Xamarin.Forms 应用程序挂起
【发布时间】:2017-08-02 11:28:45
【问题描述】:

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

资源代码:

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

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

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

XAML 代码似乎破坏了我的应用程序中的某些内容,但我没有收到任何错误,只是应用程序变得无响应并且不会打开该页面,而是显示操作系统消息以强制关闭应用程序。我在 VS2015 中以 Debug 模式运行应用程序,并且该页面上的 OnAppearing() 方法永远不会命中我的断点。

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

我使用的是 Xamarin 版本 4.5.0.486

【问题讨论】:

  • 您是否在转换器代码中设置了断点?这会被击中吗? ConverterBase64ImageSource 实际上在 MyApp 命名空间中?例如不是MyApp.Converters
  • 呃,就是这样。我使用的是根名称,而不是转换器所在的名称。奇怪的是,我在使用翻译服务时遇到了同样的“错误”,但不知何故有效。你能把你的评论写成anwser,所以我可以接受吗?非常感谢您的帮助:)
  • 完成!很高兴你成功了!

标签: c# xaml xamarin.forms xamarin.forms.listview


【解决方案1】:

请仔细检查ConverterBase64ImageSource 类实际上是否在MyApp 命名空间中?例如,不是MyApp.Converters,那么它将不起作用。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 2021-03-12
    • 2016-12-24
    • 2014-10-21
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多