2012-05-08 3 views
0

Я создаю приложение для Microsoft Surface. У меня есть элемент управления WPF, повернутый на 180 градусов с использованием rendertransform, чтобы люди с другой стороны могли его использовать. Их два, один повернут, один нет. Когда пользователь выбирает вкладку в элементе управления, элемент управления увеличивается до размера вкладок. На том, что не вращается, анимация высоты работает правильно, увеличиваясь «вверх» по направлению к «вершине» экрана. Вращающийся растет в том же направлении, кверху, но он должен расти в противоположном направлении. Оба должны расти в направлении центра экрана.WPF Height Animation - Direction of Height

Setup (Они легенды на карте):

<SurfaceWindow> 
    <Canvas> 
     <UserControl /> 
     <UserControl /> // rotated 
     <Map /> 
    </Canvas> 
</SurfaceWindow> 

Есть ли способ, чтобы контролировать направление высоты анимации?

Спасибо, Andrew

ответ

0

Вам не нужно два элемента управления: только один, скажем, свойство «Перевернутый» (или свойство зависимостей, чтобы использовать его во время разработки). Когда Flipped True, вы должны установить вращение на вашем элементе управления и VerticalAlignment to Top. когда false, без вращения и вертикального выравнивания до нижнего.

+0

Там не два закодированных управления раздельно, только один отображается дважды. Что должно иметь VerticalAlignment? Сам UserControl? –

+0

Добавленный макет на вопрос –

+0

Я предпочел бы использовать сетку, чтобы структурировать ваше окно, чем холст. Установив ширину/высоту каждого столбца/строки в правый фиксированный размер, автоматический размер («Авто») или размер звезды («1 *»), вы можете получить результат, который будет приятным и более прочным. И да, вы можете установить VerticalAlignment в элементах управления, чтобы быстро протестировать ... или использовать что-то вроде перевернутого свойства ... Я не удивлюсь, что некоторые другие свойства элемента управления будут меняться, когда он перевернут. – GameAlchemist

0

Решено.

Используется LayoutTransform вместо RenderTransform

например

Legend2.LayoutTransform = new RotateTransform(180); 

вместо

Legend2.RenderTransform = new RotateTransform(180);