【问题标题】:Windows Phone 8 C# Margin Thickness in arrayWindows Phone 8 C# 数组中的边距厚度
【发布时间】:2014-11-02 11:58:21
【问题描述】:

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

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

现在有人可以解决这个问题吗? (ps 我是 C# 编码的新手,所以如果这是一个非常愚蠢的问题,我很抱歉。)

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    顺便说一句,这只是一个字符串。

    如果你想用 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]));
    

    否则,如果你只想用一个字符串来做,用“,”作为分隔符。


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

    【讨论】:

    • 谢谢,这行得通,但是如果我有多个边距,而不仅仅是一个边距,我该如何让它工作呢?
    • @NLGameVideosNL 再做一次拆分 :),查看更新的解决方案。
    猜你喜欢
    • 2011-11-06
    • 2011-11-09
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多