WP8: c#应用程序在更改BitMapImage时崩溃
本文关键字:BitMapImage 崩溃 应用程序 WP8 | 更新日期: 2023-09-27 18:05:10
好吧,我不知道是什么原因导致我的应用程序崩溃,我根本不明白发生了什么。我将很快解释我的应用程序可以做什么,什么是我的问题。此外,我在这里几乎没有读到任何关于这方面的话题,只是在不同的谷歌网站上点击。我找不到解决办法,所以我不得不问!
我有一个图像设置为背景->工作良好。
我有一个TextBlock显示不同的文本每15秒,由计时器控制,每个文本保存在一个列表!->工作正常
我有一个渐入/渐出的文本->工作良好。
我在底部有一个应用程序栏->很好。
用代码的和平来改变一个明确的图片->工作得很好。
private void Appearance_Click(object sender, EventArgs e)
{
Hintergrund.Source = new BitmapImage(new Uri("/Pictures/StarsNight19.jpg", UriKind.Relative));
}
嗯,我有大约20个不同的图像,都有相当相同的名称,保存在我的项目文件夹。路径如代码片段所示:/Pictures/StarsNightXX.jpg
Build Action设置为:CONTENT(基本上一切都试过了)
Copy To Output Directory设置为:Copy Always.
现在我的问题是。
我把图片的名字保存在一个列表中。
.....
pictures.Add("StarsNight4.jpg");
pictures.Add("StarsNight5.jpg");
pictures.Add("StarsNight6.jpg");
....
我使用与之前相同的操作,希望它在点击应用程序栏中的漂亮小按钮时改变图像:
private void Appearance_Click(object sender, EventArgs e)
{
Random rnd = new Random();
int next = rnd.Next(0, pictures.Count - 1);
background.Source = new BitmapImage(new Uri("/Pictures/"+pictures.ElementAt(next), UriKind.RelativeOrAbsolute));
}
APP崩溃
我就是想不出问题在哪里。
如开头所示,写一个显式的名称来改变它,效果很好…
也许有人能告诉我这个列表是否引起了问题?我就是想不明白
"循环它"也不工作:
int i = 0;
private void Appearance_Click(object sender, EventArgs e)
{
if (i >= pictures.Count) i = 0;
background.Source = new BitmapImage(new Uri("/Pictures/" + pictures.ElementAt(i), UriKind.RelativeOrAbsolute));
i++;
}
因为我直接在我的WP上测试我的应用程序,我不知道我得到了什么样的异常。没有办法在我的电脑上编译和测试它只是为了让你知道。
…我在这里失去了理智
请尝试这个源代码,我已经尝试处理在下面的源代码中创建的对象,使用您的列表和其他代码,如循环,因为它是。
private static BitmapImage bi = null;//this line at the top, not in function
private static Image si = null;//this line at the top, not in function
if bi!=null)
{
bi.Dispose();
bi = null;
}
if si!=null)
{
si.Dispose();
si = null;
}
BitmapImage bi = new BitmapImage();
Image si = new Image();
bi.BeginInit();
bi.UriSource = new Uri(@"/img/img1.jpg",UriKind.RelativeOrAbsolute);
bi.EndInit();
si.Source = bi;