C#从字符串设置字段

C#从字符串设置字段,c#,wpf,C#,Wpf,我正在建立一个UWF程序,我想让它每x秒3个随机方块改变颜色 总共大约有40个正方形,每个正方形都被命名为rec1-rec42。所以我的想法是通过组合两个字符串“rec”和一个随机int随机选择一个正方形。但是现在我必须从一个字符串中设置一个字段,这是可能的吗?我是否理解/接近这一点 这是我目前的方法 void animatedGraphics_Tick(object sender, object e) { //List of color String[] pos

我正在建立一个UWF程序,我想让它每x秒3个随机方块改变颜色

总共大约有40个正方形,每个正方形都被命名为rec1-rec42。所以我的想法是通过组合两个字符串“rec”和一个随机int随机选择一个正方形。但是现在我必须从一个字符串中设置一个字段,这是可能的吗?我是否理解/接近这一点

这是我目前的方法

void animatedGraphics_Tick(object sender, object e) {
        //List of color
        String[] possibleColor = { "#FF443806", "#FF332E04", "#FF130F03" };

        Random rnd = new Random();
        //Loop for three square
        for (int i = 0; i < 3; i++)
        {
            //generate pick squares to change
            string square = ("rec" + rnd.Next(1, 43));

            //Something like square.fill = possibleColor[rnd.Next(0,3)];
        }
    }
void animatedGraphics\u勾选(对象发送器,对象e){
//颜色列表
字符串[]可能颜色={“#FF443806”、“#FF332E04”、“#FF130F03”};
随机rnd=新随机();
//三方环
对于(int i=0;i<3;i++)
{
//生成要更改的拾取方块
字符串平方=(“rec”+rnd.Next(1,43));
//类似square.fill=possibleColor[rnd.Next(0,3)];
}
}
谢谢

编辑:这就是我最终使用的

        void animatedGraphics_Tick(object sender, object e)
    {
        //List of color converted to from ARGB values
        Color[] possibleColor = { Color.FromArgb(255, 65, 54 ,9), 
            Color.FromArgb(255, 19, 15, 3), Color.FromArgb(255, 51, 46, 3) };

        Random rnd = new Random();
        //Loop for three square
        for (int i = 0; i < 3; i++)
        {
            //Use FindName to locate the shape 
            Rectangle square = (Rectangle) this.FindName("rec" + rnd.Next(1,42));

            //Change the shape color
            square.Fill = new SolidColorBrush(possibleColor[rnd.Next(0,3)]);
        }
    }
void animatedGraphics\u勾选(对象发送器,对象e)
{
//从ARGB值转换为的颜色列表
Color[]possibleColor={Color.FromArgb(255,65,54,9),
Color.FromArgb(255,19,15,3),Color.FromArgb(255,51,46,3)};
随机rnd=新随机();
//三方环
对于(int i=0;i<3;i++)
{
//使用FindName来定位形状
矩形square=(矩形)this.FindName(“rec”+rnd.Next(1,42));
//更改形状颜色
正方形填充=新的SolidColorBrush(可能的颜色[rnd.Next(0,3)]);
}
}

可能不是最好的方法,但您可以通过他的名字调用此.FindName()来获得控件
然后填充方法将笔刷作为参数,您可以使用SolidBrushColor。
最后,要将六边形转换为颜色,可以使用ColorConverter.ConvertFromString()


正方形的确切类型是什么?XAML矩形类==>你看过这篇文章了吗?我建议把你的方块放在一个列表或数组中,而不是访问一个随机索引,而不是按名称访问对象。这将使你的代码更好地服务
Color color = (Color)ColorConverter.ConvertFromString(possibleColor[rnd.Next(0,3)]);  
SolidColorBrush myBrush = new SolidColorBrush(color);  
Rectangle myRectangle = (Rectangle) this.FindName(square);  
myRectangle.Fill(myBrush);