2012-05-08 11 views
0

私はMicrosoft Surface用のアプリケーションを作成しています。私は、反対側の人々がそれを使用できるように、レンダリングトランスフォームを使用して180度回転されたWPFコントロールを持っています。それらのうち2つがあり、1つは回転したもの、もう1つは回転していない。ユーザーがコントロール上のタブを選択すると、タブサイズに合わせてコントロールが拡大します。回転していないアニメーションでは、高さアニメーションが正しく機能し、画面の「上」に向かって「上向き」に成長します。回転したものも同じ方向に、同様に上に向かって成長するが、反対方向に成長する必要がある。どちらも画面中央に向かって成長するはずです。WPF高さアニメーション - 高さの方向

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

高さアニメーションの方向を制御する方法はあります:

セットアップ(彼らは、マップ上の伝説がありますか)?あなたは2つのコントロールを必要としない

おかげで、 アンドリュー

答えて

0

:とちょうど1、たとえば、「反転を」プロパティ(または依存関係プロパティは設計時にそれを使用します)。 FlippedがTrueの場合、コントロールの回転とTopへのVerticalAlignmentを設定する必要があります。 falseの場合は回転は行わず、VerticalAlignmentをBottomに設定します。

+0

2つのseparatlyコード化されたコントロールは、ちょうど1が2回表示、ありません。 VerticalAlignmentには何が必要ですか? UserControl自体? –

+0

質問に追加されたレイアウト –

+0

私はむしろキャンバスよりもウィンドウを構造化するためにグリッドを使用したいと思います。各列/行の幅/高さを適切な固定サイズ、自動サイズ( "Auto")、または星のサイズ( "1 *")に設定することで、見栄えがよく保守性に優れた結果が得られます。もちろん、コントロールのVerticalAlignmentを高速にテストするように設定することもできますし、フリップされたプロパティのようなものを使用することもできます。コントロールの一部のプロパティが反転されたときに変更されることはありません。 – GameAlchemist

0

解決済み。

使用さLayoutTransform代わりにRenderTransform

例えば

Legend2.LayoutTransform = new RotateTransform(180); 

代わりの

Legend2.RenderTransform = new RotateTransform(180); 
関連する問題