Проблема с изменением размера элемента управления - PullRequest
0 голосов
/ 08 февраля 2011

Я пытаюсь контролировать, что он будет иметь динамический размер, я сначала протестировал, когда вы увеличиваете размер элемента управления, работал отлично, однако, когда я Уменьшил, размер события даже не вызывался.Я использую следующее событие для вызова функции

ChatList.SizeChanged += ChatList_SizeChanged;

private void ChatList_SizeChanged (object sender, System.Windows.SizeChangedEventArgs e)
{
  UpdateLayout ();
  CalculateSpace (e.NewSize.Width);
}

Функция CalculateSpace имеет следующий код

private void CalculateSpace (double width)
{
  var size = width / _List.Count;
  foreach (var in personSelector _List)
    personSelector.Value.Width = size;
  }
}

Есть ли причина, по которой событие не будет вызываться при уменьшении размера экрана?

Спасибо

1 Ответ

0 голосов
/ 08 февраля 2011

Очень сложно проанализировать, что происходит при отсутствии хорошей информации, макет вашего элемента управления и где он размещен. Однако я ожидал бы обнаружить, что элемент управления всегда будет иметь не меньший размер, чем его содержимое. Следовательно, как только вы увеличиваете ширину его содержимого, вы фактически устанавливаете его минимальную ширину. Когда доступное пространство становится маленьким, элемент управления не уменьшается, поскольку ему «нужно» больше.

Рассматривали ли вы использование Grid с определениями столбцов шириной 1 *. Когда вы добавляете новый элемент person, элемент управления просто добавляет другое определение столбца в сетку и добавляет соответствующее значение свойства Grid.Column в новый элемент.

Сетка будет обрабатывать все эти параметры для вас.

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