我花了1个小时浏览互联网并试图找到一种方法如何将Uri加载到内容图像并创建一个BitmapImage。
这就是我所拥有的:
{
Uri x = new Uri("/Images/appbar.chevron.up.png", UriKind.Relative);
BitmapImage bi = new BitmapImage(x);
return x;
}
解决方案资源管理器中的图像正在项目中:
每张图片都将Build Action as Content
我在创建BitmapImage时收到The given System.Uri cannot be converted into a Windows.Foundation.Uri. Please see http://go.microsoft.com/fwlink/?LinkID=215849 for details.
,但调试器告诉我Uri已创建:
请告诉我,如何加载所选图像?
答案 0 :(得分:0)
我不确切知道WinRT中的内容和资源是如何工作的,但在WPF中," Content"必须将项目复制到输出目录。它们被添加到清单中,但文件本身并未嵌入。
如果要嵌入文件,请使用"资源"的构建操作。 (WinRT甚至不支持"内容" - 我从未使用过它)。您还需要使用Absolute
方案创建ms-appx:
URI。
答案 1 :(得分:0)
如上所述,要从您的应用包中加载图像,您将使用ms-appx协议。请参阅MSDN上的URI schemes文档
Uri x = new Uri("ms-appx:///Images/appbar.chevron.up.png");
BitmapImage bi = new BitmapImage(x);
然后,您需要将BitmapImage而不是URI返回给调用者:
return bi; // not: return x;
或者将其设置在Image控件上。 BitmapImage只是数据,不会单独显示。
img.SetSource(BI);
在你的Xaml中创建img:
根据您尝试在appbar按钮中设置图片的名称进行猜测。为此,您可以使用Segoe UI Symbol字体而不是加载图像:
<AppBarButton>
<AppBarButton.Icon>
<FontIcon FontFamily="Segoe UI Symbol" Glyph=""/>
</AppBarButton.Icon>
</AppBarButton>
<AppBarButton>
<AppBarButton.Icon>
<FontIcon FontFamily="Segoe UI Symbol" Glyph=""/>
</AppBarButton.Icon>
</AppBarButton>
或者,如果您想将AppBarButtons设置为xaml中的图像:
<AppBarButton>
<AppBarButton.Icon>
<BitmapIcon UriSource="Images/appbar.chevron.up.png"/>
</AppBarButton.Icon>
</AppBarButton>
<AppBarButton>
<AppBarButton.Icon>
<BitmapIcon UriSource="Images/appbar.chevron.down.png"/>
</AppBarButton.Icon>
</AppBarButton>