2011-11-15 11 views
3

私はWPFアプリケーションを開発しています。メインウィンドウにインスタンスを作成する必要があるため、私はカスタムのusercontrolを作成しました。UserControl Position

 var MyCard = new vCard(); 
     MainGrid.Children.Add(MyCard); 
     Grid.SetColumn(MyCard, 1); 
     Grid.SetRow(MyCard, 0); 

しかし、私は一つ一つのX & Y位置を設定する方法を、順番に一人一人を配置する必要があり、そう:だから、これは私が新しいインスタンスを作成する方法です。私は、私のusercontrolのmarginプロパティを設定するメソッドを作成しようとしました:

public void SetX(double X) 
    { 
     double Y =this.Margin.Top;    
     this.Margin = new Thickness(X, Y, 0, 0);    
    } 

しかし、それは動作しません。それを行う別の方法がありますか?

+1

あなたは、任意のX、グリッドセル内のY位置決めを実行したい場合は、キャンバス内のコントロールを配置するCanvas.LeftとCanvas.Top添付プロパティを使用し、そのグリッド位置でキャンバスを入れてみてください。 –

答えて

3

多くの場合無視されるコントロールはUniformGridです。

<UniformGrid Name="MainGrid" Rows="3" Columns="2"/> 

前回と同じようにUserControlを追加します。

var MyCard = new vCard(); 
MainGrid.Children.Add(MyCard); 

これは、あなたの商品にすばらしい均等に分散したコンテナを提供します。アイテム間の間隔を調整するには、いくつか方法がありますが、UserControl自体のMarginプロパティの調整が最も簡単です。

<UserControl Margin="8" ... /> 
1

オブジェクトのObservableCollectionを作成し、スタックパネル内に配置します。そうすれば、ユーザーコントロールを追加/削除/並べ替えることができます。それでは、スタック内のサイズを設定するだけです。

4

コンテナをGridコンテナに追加するときは、Columnとに設定して位置を設定する必要があります。

これを行うには、新しいユーザーコントロールの追加に必要な行数と列数をグリッドに設定する必要があります。