5

我正在尝试将我创建的控件放在我的Canvas. 这个想法是能够动态地动态添加它们。就像在按钮上单击或在DispatchTimer. 我有以下内容,但它不起作用:

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

我没有看到任何控件出现...

4

3 回答 3

6

您需要将控件添加到第Canvas一个。

yourCanvas.Children.Add(mc)
于 2009-04-15T00:40:22.020 回答
6

将控件放置在画布或网格中是一个两步过程。

  1. 将控件添加到容器的子集合
  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 回答
1

另一种(在某些情况下更容易)的方法是从UIElement侧面:

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