#c_sharp #wpf #listbox
Желаемый результат выглядит так: XAML:C#: mass = new Rectangle[100]; for (int i = 0; i < Mass.Length; i++) { mass[i] = new Rectangle(); mass[i].VerticalAlignment = VerticalAlignment.Bottom; mass[i].Width = SList.ActualWidth / Mass.Length; mass[i].Height = (SList.ActualHeight - 100) * (i / 100.0); mass[i].Fill = Brushes.Green; mass[i].StrokeThickness = 1; mass[i].Stroke = Brushes.Black; SPName.Children.Add(mass[i]); } При реализации через ListBox получается это: XAML: C#: Panel parent = ((sender as Button).Parent as Panel).Parent as Panel; mass = new Rectangle[100]; for (int i = 0; i < Mass.Length; i++) { mass[i] = new Rectangle(); mass[i].VerticalAlignment = VerticalAlignment.Bottom; mass[i].Width = parent.ActualWidth / Mass.Length; mass[i].Height = (parent.ActualHeight - 100) * (i / 100.0); mass[i].Fill = Brushes.Green; mass[i].StrokeThickness = 1; mass[i].Stroke = Brushes.Black; } OnPropertyChanged("Mass"); Как реализовать первый вариант с помощью ListBox?
Ответы
Ответ 1
Возможно, вам нужно это:При этом ваш Mass имеет тип double[] или там IEnumerable и содержит нужные высоты прямоугольников. Получается вот такой результат: Если вам нужен ListView, вам придётся ещё подправить стиль контейнера:
Комментариев нет:
Отправить комментарий