Как сохранить динамическое добавление изображений по центру на панель? - PullRequest
0 голосов
/ 21 марта 2012

У меня есть пустая панель WinForms, и я динамически добавляю изображения на эту панель.Чтобы центрировать первое добавленное изображение, я просто:

  • Получите ширину (WP) панели и разделите на 2;
  • Получите ширину (WI) изображения и разделитена 2;
  • WP - WI = Левая позиция изображения X;

Но я не могу придумать какой-то динамический способ установить эту позицию, когда у меня более одного изображения.Есть ли способ рассчитать этот X?Я прав насчет этого?Есть ли более простой способ?

Спасибо.

1 Ответ

1 голос
/ 21 марта 2012

Хорошо, если у вас есть только одна строка, в некоторых из которых вы можете иметь коллекцию Image объектов, скажем

List<Image> images.

И метод

void PositionImages()
{
    int totalWidth = images.Sum(img=>img.Width);
    int startX = (panel.Width - totalWidth)/2;
}

Если сработает с вами, но вам нужно будет это проверить.Например, я предполагаю, что tolalWidth всех изображений в коллекции всегда меньше panel.Width.

...