2011-02-07 3 views
0

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

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; 
    } 
} 

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

Благодаря

+5

BTGMarco, из-за того, как работает этот сайт, ожидается, что вы нашли время, чтобы принять ответ, если он ответил на ваш вопрос. Вы задали 8 вопросов, не принимая никаких ответов. Пожалуйста, найдите время, чтобы принять ответы, или вы можете ожидать мало ответов на этот и будущие вопросы. Извините, но это как раз то, как работает это сообщество. – AndyPerfect

ответ

0

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

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

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

Смежные вопросы