Как изменить свойство многих кнопок в WP7 с помощью Foreach? - PullRequest
0 голосов
/ 24 октября 2011

Я хочу изменить свойство Background многих кнопок в WP7.

Можно ли написать что-то вроде этого:

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

Но это не сработает, Element.Backgroundне существует ...

Кто-нибудь знает, как это исправить ???

Ответы [ 3 ]

2 голосов
/ 24 октября 2011

попробуйте

  //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);
        }
    }
0 голосов
/ 24 октября 2011

Вместо циклического перебора элементов управления, попробуйте связать их свойства BackColor с чем-то, будь то класс, который реализует INotifyPropertyChanged со свойством, которое возвращает SolidColorBrush, свойство BackColor другого элемента управления или что-либо другое, с чем вы хотите связать.Это можно сделать в серебряном свете, не обходя элементы управления.Позвольте системе управлять внешним видом элемента управления вместо того, чтобы писать его самостоятельно.

0 голосов
/ 24 октября 2011

Можете ли вы попробовать это с

Element.BackColor = Color.Red 

вместо

Element.Background = Color.Red
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...