我正在尝试使用数组中的值设置椭圆的边距。到目前为止,我的代码是:
private void Dots()
{
string[] strArray = new string[] { "387,10,396,432"}; // this is the margin
foreach (string str in strArray)
{
Ellipse a = new Ellipse();
a.Fill = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
a.Margin = new Thickness(Convert.ToInt32(str)); // the margin goes here
a.Width = 25;
a.Height = 25;
a.Tap += DotTap;
LevelPanel1.Children.Add(a);
}
}
现在的问题是我收到错误“输入字符串格式不正确”。 保证金最终应如下所示:
a.Margin = new Thickness(387,10,396,432);
现在有人如何解决这个问题? (p.s我是C#编码的新手,所以如果这是一个非常愚蠢的问题,我很抱歉。)
提前致谢。
答案 0 :(得分:2)
这只是一个String btw。
如果你想用String []来做,那就这样做
string[] strArray = new string[] { "10","10","396","432" };
Thickness t = new Thickness(Convert.ToInt32(strArray[0]),
Convert.ToInt32(strArray[1]),
Convert.ToInt32(strArray[2]),
Convert.ToInt32(strArray[3]));
否则,如果您只想使用一个String,请将其作为分隔符拆分。
Split的示例代码
string str = "387,10,396,432";
string[] strArray = str.Split(',');
Thickness t = new Thickness(Convert.ToInt32(strArray[0]),
Convert.ToInt32(strArray[1]),
Convert.ToInt32(strArray[2]),
Convert.ToInt32(strArray[3]));
多边距的示例代码
string[] strArray = new string[] { "387,10,396,432", "0,0,20,40" };
string[] first_margin = strArray[0].Split(',');
string[] second_margin = strArray[1].Split(',');
Thickness first_thickness = new Thickness(Convert.ToInt32(first_margin[0]),
Convert.ToInt32(first_margin[1]),
Convert.ToInt32(first_margin[2]),
Convert.ToInt32(first_margin[3]));
Thickness second_thickness = new Thickness(Convert.ToInt32(second_margin[0]),
Convert.ToInt32(second_margin[1]),
Convert.ToInt32(second_margin[2]),
Convert.ToInt32(second_margin[3]));
使用for each
string[] strArray = new string[] { "387,10,396,432", "0,0,20,40" };
foreach (string s in strArray)
{
string[] margin = s.Split(',');
Thickness thickness = new Thickness(Convert.ToInt32(margin[0]),
Convert.ToInt32(margin[1]),
Convert.ToInt32(margin[2]),
Convert.ToInt32(margin[3]));
}