使用字符串设置图像的值
本文关键字:图像 设置 字符串 | 更新日期: 2023-09-27 17:57:47
我有一个字符串imgchng
和二十个图像image1, image2, image3,
等。
imgchng的值始终是其中一个图像的名称
如何设置imgchng
所指的当前图像的值
例如,用户将imgchng
的值设置为image12
。我该如何告诉image12
的源更改
imgchng.Source = (source goes here);
不起作用,因为这将设置字符串的属性,而不是图像的属性
我知道如何设置图像的来源,只是不知道如何设置字符串所指图像的来源。
我的意图是避免使用超过1000行长的庞大if
语句,如下面的示例:
if (textBlock2.Text == "First User Selection")
{
if (imgchng == "image1")
{
BitmapImage bmp = new BitmapImage(new Uri("/Images/FirstImg.png"));
image1.Source = bmp;
}
else if (imgchng == "image2")
{
BitmapImage bmp = new BitmapImage(new Uri("/Images/FirstImg.png"));
image2.Source = bmp;
}
//Continue this for all 20 images
}
else if (textBlock2.Text == "Second User Selection")
{
if (imgchng == "image1")
{
BitmapImage bmp = new BitmapImage(new Uri("/Images/SecondImg.png"));
image1.Source = bmp;
}
else if (imgchng == "image2")
{
BitmapImage bmp = new BitmapImage(new Uri("/Images/SecondImg.png"));
image2.Source = bmp;
}
//Continue this for all 20 images
}
else if (textBlock2.Text == "Third User Selection")
{
if (imgchng == "image1")
{
BitmapImage bmp = new BitmapImage(new Uri("/Images/ThirdImg.png"));
image1.Source = bmp;
}
else if (imgchng == "image2")
{
BitmapImage bmp = new BitmapImage(new Uri("/Images/ThirdImg.png"));
image2.Source = bmp;
}
//Continue this for all 20 images
}
else if (textBlock2.Text == "Fourth User Selection")
{
if (imgchng == "image1")
{
BitmapImage bmp = new BitmapImage(new Uri("/Images/FourthImg.png"));
image1.Source = bmp;
}
else if (imgchng == "image2")
{
BitmapImage bmp = new BitmapImage(new Uri("/Images/FourthImg.png"));
image2.Source = bmp;
}
//Continue this for all 20 images
}
基本上,正如@ctacke所说,我想做的是,给定字符串"image1",我如何获得名为"image1"的控件实例?
声明一个由20个图像组成的BitmapImage数组。将其绑定到UI。将用户选择作为整数。使用索引(显然是用户输入-1)访问数组中的图像。更改该图像的来源。这能解决你的问题吗?
要设置图像的来源,您必须执行以下操作。
BitmapImage bmp=new BitmapImage(new Uri("your image name will go here"));
image.Source=bmp;
希望这能有所帮助。