установка этого. Фон ничего не делает silverlight 4 - PullRequest
1 голос
/ 20 ноября 2010

Не уверен, что я делаю что-то глупое, но это мой код:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
      string s = this.NavigationContext.QueryString["type"];
      if ( s == "add")
      {
          this.Background = new SolidColorBrush(Colors.Red);
      }
      else
      {
          this.Background = new SolidColorBrush(Colors.Blue);
      }
}

Ничего не происходит?Страница не меняет цвет?Строка запроса входит совершенно нормально.Я нажимаю кнопку на главной странице и там я говорю frameMain.Navigate(new Uri("/AddEdit.xaml?type=edit", UriKind.Relative));

Что я делаю не так?

1 Ответ

2 голосов
/ 21 ноября 2010

Если бы вам пришлось перейти на Xaml для вашей страницы и добавить Background="Blue" к элементу navigation:Page верхнего уровня, который также не имел бы никакого эффекта.

Дочерний элемент верхнего уровня Page скорее всего, это тип панели, такой как Grid, и, скорее всего, ему присвоено имя по умолчанию LayoutRoot.Следовательно, измените ваш код следующим образом: -

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
      string s = this.NavigationContext.QueryString["type"]; 
      if ( s == "add") 
      { 
          LayoutRoot.Background = new SolidColorBrush(Colors.Red); 
      } 
      else 
      { 
          LayoutRoot.Background = new SolidColorBrush(Colors.Blue); 
      } 
} 

Пояснение

Только элемент Border и Panel на самом деле имеют рабочую реализацию Background.

Базовый тип Control также имеет свойство Background, но не знает, что с ним делать.Он оставляет это на усмотрение шаблона управления, чтобы решить, что делать со свойством Background.В большинстве случаев шаблон будет содержать верхний уровень Border, который будет иметь среди других вещей Background="{TemplateBinding Background}", который передает значение Background элемента управления в границу для отображения.

Оба Page и UserControl происходят от Control, следовательно, они оба приобретают свойство Background.Однако, не имея шаблона, ни один из этих элементов управления не будет использоваться для свойства, и его изменение ни на что не повлияет.

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