希望标题不要模糊,我不确定如何说出来。我正在尝试做的(作为一个基本示例)是以编程方式向画布添加一个矩形,然后稍后将局部变量更改为具有不同属性的新矩形,并在画布上进行更新。
// First rectangle
Rectangle rect = new Rectangle()
{
Width = 50,
Height = 50,
Fill = Brushes.Red,
Margin = new Thickness(20, 20, 0, 0)
};
// Add it to the canvas
mainCanvas.Children.Add(rect);
// Change something about the rectangle, which works
rect.Fill = Brushes.Black;
// Create new rectangle
Rectangle newRect = new Rectangle()
{
Width = 15,
Height = 20,
Fill = Brushes.Blue,
Margin = new Thickness(20, 20, 0, 0)
};
// Set the original rectangle to the new rectangle
rect = newRect;
// Canvas rectangle is no longer 'linked' to the rect variable :(
答案 0 :(得分:2)
您正在重新分配refId
变量,但这并不会影响您的Canvas。 Canvas只知道用于指向的旧矩形 for dict in container:
translated += json.dumps(dict) + ","
translated = translated.rstrip(',')
。 rect
只是对矩形的引用。将其添加到画布时,画布会复制引用。它不再继续使用rect
变量。因此,更改rect
以引用新矩形不会为画布更改任何内容,因为画布仍然引用原始矩形。
您可能希望执行以下操作。我只是在这里采取刺,所以你可能需要查找适当的方法,但希望这能为你提供指导。
rect