Что вы действительно хотите, так это триггеры WPF. К сожалению, триггеры не поддерживаются в Silverlight, поэтому это не вариант для вас.
Вы можете попробовать класс VisualStateManager
. Разумеется, его основная цель - поддерживать переходы между визуальными состояниями элемента управления, и, таким образом, он использует раскадровки и выполняет любые свойства; следовательно, он может не работать со свойством Grid.Column.
Тим Хойер имеет краткое введение VSM . Вот мнение о недостатках VSM .
Вы также можете создать собственный диспетчер состояний поверх VSM , который может обеспечить управление состоянием без анимированных переходов, а также потенциальную поддержку свойств, не поддерживаемых классом VSM.
Или вы могли бы просто иметь свой собственный метод, который вы вызываете при изменении состояния (вы должны знать, когда это происходит), и явно изменять свойство Grid.Column на двух элементах управления. Основным недостатком является то, что ваш код теперь имеет явные знания о визуальном представлении и компоновке, а также о том, как он связан с состоянием.