5

自分で作成したコントロールをに配置しようとしていCanvasます。アイデアは、それらをその場で動的に追加できるようにすることです。ボタンクリックまたはの終わりのようにDispatchTimer。私は次のものを持っていますが、それは機能しません:

    FirstCircleControl mc = new FirstCircleControl();
    Canvas.SetLeft(mc, 100);
    Canvas.SetTop(mc, 100);

コントロールが表示されません...

4

3 に答える 3

6

キャンバスまたはグリッド内にコントロールを配置することは、2段階のプロセスです。

  1. コンテナの子コレクションにコントロールを追加します
  2. コンテナ内のコントロールの場所を設定します

2番目のステップがありますが、最初のステップがありません。

キャンバス用

Button childButton = new Button();
LayoutCanvas.Children.Add(childButton);
Canvas.SetLeft(childButton, 120);
Canvas.SetTop(childButton, 120);

グリッドの場合

Button childButton = new Button();
LayoutGrid.Children.Add(childButton);
Grid.SetRow(childButton, 2);
Grid.SetColumn(childButton, 2);
于 2009-04-15T02:07:24.293 に答える
6

Canvas最初にコントロールを追加する必要があります。

yourCanvas.Children.Add(mc)
于 2009-04-15T00:40:22.020 に答える
1

それを行うための別の(場合によっては簡単な)方法は、UIElement側面からです:

    (controlItem as UIElement).SetValue(Canvas.TopProperty, topVal);
    (controlItem as UIElement).SetValue(Canvas.LeftProperty, left);
于 2012-08-22T12:39:52.877 に答える