Windows Phone 8 C#Margin数组中的厚度

时间:2014-11-02 11:58:22

标签: c# xaml windows-phone-8 windows-phone windows-phone-8.1

我正在尝试使用数组中的值设置椭圆的边距。到目前为止,我的代码是:

    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#编码的新手,所以如果这是一个非常愚蠢的问题,我很抱歉。)

提前致谢。

1 个答案:

答案 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]));


}