2011-12-25 9 views
1

私は特定の長方形のユーザーコントロールを持っています。どのようにキャンバス内の特定のx-y座標に配置できますか?ユーザーコントロールを配置したら、前に配置したコントロールのレンダリングされた幅/高さに基づいて次のコントロールを配置する位置を評価する必要があります。 Silverlightでこれらを正しく行う方法。ユーザーコントロールをキャンバスに配置する方法は?

+0

あなたがしたことと何ができなかったのかの例を教えてもらえますか?それは私たちがあなたを助けるのに役立ちます.. – katit

+0

私は、marginプロパティを使用してコントロールを配置しています。私は、コントロールを配置し、既に配置されたコントロールの位置とレンダリングサイズをどのように配置するのか分かりません。 – blitzkriegz

+0

例は素晴らしいかもしれませんが、Horizo​​ntalAlignmentとVerticalAlignmentを使用して、他のコントロール内のコントロールを簡単に調整できます – katit

答えて

2

キャンバスパネル内にコントロールを配置するには、Canvasクラスの添付プロパティCanvas.LeftおよびCanvas.Topを使用します。あなたは(キャンバスの左上隅からの相対)100,20に位置するように、あなたのコントロールを望んでいたのであれば、次のように入力します。また

<Canvas> 
    <Rectangle Canvas.Left="100" Canvas.Top="20"/> 
</Canvas> 

、あなたはコードビハインドでこれを使用することができます。

yourControl.SetValue(Canvas.LeftProperty,100.0); 
yourControl.SetValue(Canvas.TopProperty,20.0); 

あなたはあなたがが動的に手配しようとしているいくつかのコントロールを持っていれば、あなたはキャンバスのStackPanelのか、グリッドinteadを使用して検討する必要があります。

+0

レイアウトロジックを再利用できる場合は、カスタムパネルを作成することを検討してください。http://msdn.microsoft.com/en-us/library/ cc903936%28v = 95%29.aspx – Mart

関連する問題