WPF - 将每个文本块的名称放在一个数组中

时间:2016-01-16 12:27:38

标签: c# wpf xaml

我想知道是否可以让我的代码扫描我的XAML文件中每个文本块的每个名称并将其放入数组中。

例如:

XAML:

<TextBlock x:Name="textBlock1" />

C#:

string[] textblocknames = new string[] { "textBlock1", "2", ... };

我知道如何按类型扫描控件,这已在此处解释:Find all controls in WPF Window by type。但我不知道如何找到名称并将其放入数组中。

我想用它来设置它周围的边框,它看起来就像这样:

        for (int i = 0; i < textblocknames.Length; i++)
        {
            Border brd = new Border();
            brd.Name = string.Format("border_{0}", i);
            brd.BorderThickness = new Thickness(0, 0, 1, 1);
            brd.BorderBrush = Brushes.Black;
            brd.Child = textblocknames[i]
        }

有人可以帮我这个吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式搜索所有texblock: Solution。您可以获取foreach循环中每个文本块的名称,如:tb.text,并将它们放入数组中。 您可以通过以下方式添加边框:

  for (int i = 0; i < textblocknames.Length; i++)
        {
            Border brd = new Border();
            brd.Name = string.Format("border_{0}", i);
            brd.BorderThickness = new Thickness(0, 0, 1, 1);
            brd.BorderBrush = Brushes.Black;
            object item = GridName.FindName(textblocknames[i]);
            brd.Child = item;
        }