我有基于PCL的Xamarin解决方案。我需要做的是在应用程序项目中将图像加载到视图中。这些图像在另一个PCL项目中。如何从特定位置加载图像,而不是从相关程序集加载?
基本上我有一些GridView的xamarin视图。该视图应显示“卡片”之类的内容。所有数据加载良好,但图像。老实说,我尝试了一切,我可以emagine - 绝对路径,嵌入式资源,相对路径,Windows ms-appx ///前缀。我没有尝试只有流对我来说不是很有用。只有网络源工作。
我的代码:
[assembly: ExportRenderer(typeof(GridViewRoles), typeof(GridViewRolesRenderer))]
namespace StrangerParty.Windows.Renderers
{
public class GridViewRolesRenderer : ViewRenderer<GridViewRoles, GridView>
{
private GridView gridView;
protected override void OnElementChanged(ElementChangedEventArgs<GridViewRoles> e)
{
base.OnElementChanged(e);
if (this.Control == null)
{
this.gridView = new GridView();
StringBuilder sb = new StringBuilder();
sb.Append("<DataTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\">");
sb.Append("<Grid Height=\"100\" Width=\"100\" >"); /*Background =\"#FF2E2E2E\"*/
sb.Append("<Image x:Name=\"ImageRoleImage\" Stretch=\"UniformToFill\" Source=\"sampleForTesting.png\"/>");
sb.Append("</Grid>");
sb.Append("</DataTemplate>");
DataTemplate datatemplate = (DataTemplate)XamlReader.Load(sb.ToString());
this.gridView.ItemTemplate = datatemplate;
SetNativeControl(this.gridView);
}
this.gridView.ItemsSource = Core.Instance.GameHandler.Game.Players;
}
}
}
感谢您的帮助
谢谢!这是优秀和完整的指导如何使用嵌入图像。我其实并没有期待这个详尽的东西,但非常感谢! – Qerts