2014-11-02 54 views
1

我试图用数组中的值设置椭圆的边距。我至今的代码是这样的:Windows Phone 8 C#中的边距厚度

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); 

有谁现在如何解决这一问题?如果这是一个非常愚蠢的问题,我很抱歉。)

在此先感谢。

回答

2

这只是一个字符串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 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])); 

使用您的for each

012多个利润率

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

示例代码示例

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


} 
+0

谢谢,这是工作,但我怎么能得到这个工作,如果我有多个利润率,而不只是一个? – 2014-11-02 12:18:56

+0

@NLGameVideosNL只是做另一个:),看到更新的解决方案。 – 2014-11-02 12:26:56

+0

非常感谢你,每个人都像一个魅力:) – 2014-11-02 12:34:40