如何使用Foreach更改WP7中许多按钮的属性?

时间:2011-10-24 10:08:11

标签: c# windows-phone-7

我想更改WP7中许多按钮的属性Background

我能写这样的东西:

Foreach (var item in (this.Content as Panel).Children)
{
    If (Element is Button)
    {
        Element.Background = Color.red;
    }
}

但这不起作用, Element.Background不存在......

任何人都知道如何解决它???

3 个答案:

答案 0 :(得分:2)

试试这个

  //to be on the safe side first check
  if(this.Content == null || !(this.Content is Panel)
      return;

  foreach (var item in (this.Content as Panel).Children)
    {
        if (item is Button)
        {
            Button b = item as Button;
            b.Background = new SolidColorBrush(Colors.Red);
        }
    }

答案 1 :(得分:0)

你能用

试试吗?
Element.BackColor = Color.Red 

而不是

Element.Background = Color.Red

答案 2 :(得分:0)

尝试将其BackColor属性绑定到某个东西,而不是循环遍历控件,它是一个实现INotifyPropertyChanged的类,其属性返回SolidColorBrush,另一个控件的BackColor属性,或者您选择绑定的任何内容。这可以在silverlight中完成,而无需循环控制。让系统管理控件外观,而不是自己编写。