Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Расстояние между элементами ListBox

#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, вам придётся ещё подправить стиль контейнера:

Комментариев нет:

Отправить комментарий