@lggrlrglgrl

Как достать все элементы из wrappanel?

Как обратиться к каждому элементу WrapPanel и изменить Background?

Пример кода:
public void AddTabMenu()
{
	var lb = new Label();
	var index = wpTopMenu.Children.Count;
	lb.Name = "Scene" + index;
	lb.Content = "Сцена " + index;
	lb.Style = this.Resources["tabMenu"] as Style;
	wpTopMenu.Children.Insert(index - 1, lb);
}

private void TextBlock_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
	AddTabMenu();
}

private void Label_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
	if(sender is Label lb)
	{
		var index = wpTopMenu.Children.Count;
		for (int i = 0; i < index; i++)
		{
			var item = wpTopMenu.Children[i];
		}
		lb.Background = new SolidColorBrush(Color.FromArgb(255, 136, 0, 255));

		br.Children.RemoveAt(0);
	}
}
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 1
cyber_roach
@cyber_roach
UX дизайнер INEDIapps
Присвойте ресурс Background или стиль элементу ссылающийся на Background
далее просто меняйте когда нужно цвет у ресурса
Примерный код:

App.xaml
<Color x:Key="DecorateColor">#FF005087</Color>
<SolidColorBrush x:Key="BackgroundBrush" Color="{DynamicResource DecorateColor}"/>


элементы где меняем цвет, например внутри стиля
<Border Background="{StaticResource BackgroundBrush}"/>


изменение цвета ресурса
Color decorateColor = Color.Color.FromArgb(255, 136, 0, 255);
Application.Current.Resources["DecorateColor"] = decorateColor;


Если использовать MVVM, то можно и через StaticResource решить.

Но это подход "В лоб", более верным будет через состояние стиля, но это вам сначала изучить Trigger (для конкретно этого случая DataTrigger) и MVVM.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы