【发布时间】:2015-02-15 17:03:38
【问题描述】:
我正在尝试这种双图像缓冲方法,它是一个 for each 循环,它遍历整个数组,如果 int 是偶数,它将把它添加到结束字符串变量中,然后在 StarImage 中显示该图像如果它是奇数,它将执行相同的操作,但这次显示在 Image2 中。由于某种原因,它会在 2 个文本框中显示字符串,无论是偶数还是奇数,但由于某种原因,图像不是即使这是图像的正确路径,也显示在图像框中,这是我目前所拥有的:
string[] images = new string[] { "Star_00001.png", "Star_00002.png", "Star_00003.png", "Star_00004.png", "Star_00005.png", "Star_00006.png", "Star_00007.png", "Star_00008.png",
"Star_00009.png", "Star_00010.png", "Star_00011.png", "Star_00012.png", "Star_00013.png", "Star_00014.png", "Star_00015.png", "Star_00016.png",
"Star_00017.png", "Star_00018.png", "Star_00019.png", "Star_00021.png", "Star_00022.png", "Star_00023.png", "Star_00024.png", "Star_00025.png",};
int num = 0;
string path = "Assets/Star/Star_0000";
foreach(string file in images)
{
num = num + 1;
if ((num & 1) == 0)
{
string num2 = num.ToString();
string end = path + num2;
BitmapImage Image = new BitmapImage();
Image.UriSource = new Uri(this.BaseUri, end);
StarImage.Source = Image;
TxtBlock1.Text = end;
await Task.Delay(46);
}
else
{
string num2 = num.ToString();
string end = path + num2;
BitmapImage Image3 = new BitmapImage();
Image3.UriSource = new Uri(this.BaseUri, end);
Image2.Source = Image3;
TxtBlock2.Text = end;
await Task.Delay(46);
}
}
有谁明白我做错了什么,或者可能有任何替代双缓冲的方法?
【问题讨论】:
-
为什么要遍历文件列表,却使用数字而不是文件名?
-
@CommuSoft 好问题!你看,我不知道更好的方法,我不明白如何创建一个只会循环一定次数的 foreach 循环:/
-
很抱歉
double-buffering到底在哪里?如果StarImage和Image2在屏幕上始终可见,那么您实际上只是用一系列静止图像为两张图片制作动画。 -
@MickyDuncan 抱歉让您难以理解,但我正在尝试自己的双缓冲替代方案,我正在尝试将奇数加载到 1 个图像框中并使其可见,而偶数是如果你明白我的意思,加载到另一个图像框中
-
@JermainDefo 啊,我明白了,goodo