我是一名C#/编程初学者。
我尝试显示很多像相册或网格的图片。
到目前为止看起来像这样: http://i.imgur.com/LC7lhXi.jpg
但是有空位,当我向下滚动时看起来更糟糕:http://i.imgur.com/QuFOgr1.png
我在ScrollViewer中创建了一个UniformGrid。这是我获得我想要的最简单方法。也许不是最好的解决方案。如果我添加更多图片,图像会变小。我认为这是统一网格的原因。
以下是我如何做到的两个代码示例。
js.movie1是一个包含少数成员的对象。 js.movie1 [0] .poster是第一张图片的文件名(共有275张图片)。 该对象由JSON.NET框架创建。它只是读取一个JSON文件集的一些变量,我把对象放在一个列表中。 例如js.movie1 [0] .poster是作为图片的海报的文件名,js.movie1 [0] .title是电影的标题,依此类推。
private void btnShow_Click(object sender, RoutedEventArgs e)
{
uGrid.Children.Clear();
string strWebAdress = @"https://image.tmdb.org/t/p/original/";
for (int i = 0; i < js.movie1.Count; i++)
{
Image img = new Image();
BitmapImage bimg = new BitmapImage(new Uri(strWebAdress + js.movie1[i].poster));
//bimg.sou
img.BeginInit();
img.Source = bimg;
img.EndInit();
uGrid.Children.Add(img);
}
或者我这样做了:
private void btnShow_Click(object sender, RoutedEventArgs e)
{
uGrid.Children.Clear();
string strWebAdress = @"https://image.tmdb.org/t/p/original/";
List<string> listImage = Directory.GetFiles(strPath, "*jpg").Select(System.IO.Path.GetFileName).ToList();
List<Image> imgList = new List<Image>();
for (int i = 0; i < js.movie1.Count; i++)
{
Image Controlimage = new Image
{
Source = new BitmapImage(new Uri(strCoverUrl + js.movie1[i].poster)),
};
uGrid.Children.Add(Controlimage);
}
我的问题是某些图片之间有空格,我不能像我想的那样调整它们。我想在程序加载图片时滚动。 该程序需要1.5 GB的RAM和大量的CPU电源,所以我需要一个betetr解决方案。
使用Foreach我可以滚动但我为此创建了一个数组。我不知道如何用一个物体来计算foreach。至少不是我的对象的使用方式。
必须有一种方法来加载和显示来自URL的图片,这些图片不会阻止UI并且需要如此强大的功能。 就像我说我是一个血腥的初学者;)
问候Fabian:)