Я бы так поступил, обработав событие SizeChanged на ваших двух элементах управления. Я бы связал это событие на обоих элементах управления с обработчиком событий, таким как:
void ControlAOrB_SizeChanged(object sender, SizeChangedEventArgs e)
{
double maxWidth = Math.Max(controlA.ActualWidth, controlB.ActualWidth);
controlA.Width = maxWidth;
controlB.Width = maxWidth;
}
Я не тестировал этот код, поэтому я не знаю, приведет ли установка Width
элемента управления к уже имеющейся ширине, что вызовет другое событие SizeChanged, снова вызовет этот обработчик события и, следовательно, приведет к бесконечной рекурсии , Поэтому может быть целесообразно установить ширину элемента управления на maxWidth
, только если она в настоящее время меньше maxWidth
.
Я не думаю, что подход, использующий связывание, работает здесь особенно хорошо. Свойство ActualWidth
FrameworkElement возвращает фактическую ширину, с которой был обработан элемент управления, но вы не можете привязаться к ActualWidth
, поскольку это не свойство зависимости.