使用字符串设置图像的值

本文关键字:图像 设置 字符串 | 更新日期: 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;

希望这能有所帮助。