猿问

WPF获取遍历控件的值

for (int i = 0; i < counter; i++)
{
  Label lb = new Label();
  lb.Width = 50;
  lb.Height = 35;
  lb.FontFamily = new FontFamily("LiSu");
  lb.HorizontalAlignment = HorizontalAlignment.Left;
  lb.VerticalAlignment = VerticalAlignment.Bottom;
  lb.FontWeight = FontWeights.Bold;
  Canvas.SetTop(lb, i * (-2));
  lb.Background = Brushes.Transparent;
  lb.HorizontalContentAlignment = HorizontalAlignment.Center;
  lb.VerticalContentAlignment = VerticalAlignment.Center;

  canEAChip_Idle5.Children.Add(lb);
}

我用for循环动态添加Label,我要怎么获取每个Label的名称呢,我想给添加出来的Label加上背景。


泛舟湖上清波郎朗
浏览 360回答 2
2回答

慕无忌1623718

方法1,在创建的时候把Label保存在一个List中方法2,遍历canEAChip_Idle5内的控件,然后判断是Label的话就加上背景foreach&nbsp;(UIElement&nbsp;element&nbsp;in&nbsp;canEAChip_Idle5.Children)&nbsp; {&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(element&nbsp;is&nbsp;Label)&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label&nbsp;current&nbsp;=&nbsp;((Label)element);&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置背景 current.Background&nbsp;=&nbsp;Brushes.Transparent; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; }方法3,如果使用VisualTreeHelper的话,参考如下://定义扩展方法&nbsp; public&nbsp;static&nbsp;IEnumerable&nbsp;<DependencyObject>&nbsp;GetVisuals(this&nbsp;DependencyObject&nbsp;root)&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;count&nbsp;=&nbsp;VisualTreeHelper.GetChildrenCount(root);&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;count;&nbsp;i++)&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;child&nbsp;=&nbsp;VisualTreeHelper.GetChild(root,&nbsp;i);&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield&nbsp;return&nbsp;child;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(var&nbsp;descendants&nbsp;in&nbsp;child.GetVisuals())&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield&nbsp;return&nbsp;descendants;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; //调用如下(将所有Control禁掉):&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LayoutRoot.GetVisuals().OfType&nbsp;<Control>().ToList().ForEach(item&nbsp;=>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item.IsEnabled&nbsp;=&nbsp;false;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});
随时随地看视频慕课网APP
我要回答