【问题标题】:Why does my xamarin android display images and UWP doesn't?为什么我的 xamarin android 显示图像而 UWP 不显示?
【发布时间】:2018-08-28 16:14:39
【问题描述】:

我有一个非常奇怪的情况,我已经失去了无数个小时,而且我在 stackoverflow 上也找不到任何东西。

当我通过 C# 在空白页面上创建一个简单的图像时:

mainStackLayout.Children.Add(new Image() { Source = "mypic.png" });
Content = mainStackLayout;

在我编译并在我的 android 设备上运行后,它可以完美运行,而在 UWP 上构建和运行时根本不显示任何图像。

我在 UWP/Assets 和 UWP/ 根目录中复制了相同的图像,但仍然没有。 有什么想法吗?

【问题讨论】:

  • 您是否将 BuildAction 设置为 Content?
  • 你到底是什么意思?我对此很陌生(对不起,呵呵)。你能详细说明一下吗?
  • 在解决方案资源管理器中右键单击您的图像文件并将构建操作设置为内容。如文档中所述:docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/…
  • 好吧,我按照你的建议做了,听起来很有希望,但仍然一无所获..
  • 您在资源管理器中复制了文件,而不是在 VS 中?如果你这样做,VS 不知道它们存在并且不会将它们包含在构建中

标签: c# android xamarin.forms uwp


【解决方案1】:

我在 UWP/Assets 和 UWP/ 根目录中复制了相同的图像,但仍然没有。有什么想法吗?

当您将图片从 Android\Drawables 复制到 UWP 中的 Assets 文件夹时。并且BuildAction Property也被复制到UWP项目中。所以你需要将属性设置为Content

否则,图片路径为Assets/xxx.png。无法使用 `Source = "xxx.png" 访问它。所以需要修改图片源。

mainStackLayout.Children.Add(new Image() { Source = "Assets/icon.png" });
Content = mainStackLayout;

为了更灵活,Device.RuntimePlatform 属性可用于为某些或所有平台选择不同的图像文件或路径,如此代码示例所示

mainStackLayout.Children.Add(new Image() { Source = Device.RuntimePlatform == Device.UWP ? ImageSource.FromFile("Assets/xxx.png") : ImageSource.FromFile("waterfront.jpg")});

更多信息可以参考working with image

【讨论】:

    猜你喜欢
    • 2016-09-16
    • 2015-05-04
    • 2016-09-14
    • 2014-08-26
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多