2016-09-19 19 views
0

私はキャンバスをメインUIとして使用するWPFアプリケーションを用意しています。カスタムコントロールは、実行時にCanvasに動的に追加されます。実行時にこれらのカスタムコントロールをCanvasに配置するにはどうすればよいですか? XAMLでは、かなり単純です。キャンバスにカスタムコントロールを配置

<Label Name="myCoolLabel" 
     Content="My Name" 
     Width="200" 
     Height="100" 
     Canvas.Left="{Binding MyLabelX, Mode=OneWay}" 
     Canvas.Top="{Binding MyLabelY, Mode=OneWay}" /> 

Canvasプロパティでは、Bindingを使用して位置を設定できます。私はBindingを使用しなかった場合でも設定することができます。しかし、Canvasプロパティはコードでは利用できません。

私はこれらのコントロールをXAML経由で追加することを検討し、デフォルトでは表示しないようにしてから、実行時にBinding経由で位置を設定して表示させましたが、これはいくつかの理由で現実​​的ではありません制御または数十。

実行時に追加されるコントロールの絶対位置を設定する方法はありますか?それも可能ですか?

答えて

1

子コントロールのCanvas.TopCanvas.Leftattached propertiesをスタティックセッターメソッドで設定します。

Canvas.SetLeft(myCoolLabel, 100); 
Canvas.SetTop(myCoolLabel, 200); 

はその後canvasは、Canvasコントロールの名前です

canvas.Children.Add(myCoolLabel); 

でキャンバスにコントロールを追加します。

+0

この解決策が見つかりました_right後に私は質問を投稿しました。しかしそれは正解です!ありがとう! – Frecklefoot

関連する問題