当父级 (canvas) Size_Changed 被触发时,第 Size_Changed 行事件不会触发
Line Size_Changed event doesn't fire when parent (canvas) Size_Changed is fired
我有一个canvas,我想在上面画几条线。哪个工作正常。
但我也想移动线条,当 canvas 的大小更改为新位置时。所以我在每一行
添加了一个 Size_Changed 的事件处理程序
liMonth.SizeChanged += LiMonth_SizeChanged;
但是,当我更改父级 window 的大小时,Canvas 的 Size_Changed 事件被触发,而不是该行的 Size_Changed 事件.
如何让 canvas 在大小更改时为其子项触发 size_changed 事件?
我在矩形上也有同样的问题,它也在 canvas 上,但我认为这是同样的问题。
A Canvas 从不调整其子元素的大小,因此不会为您的直线和矩形触发 SizeChanged 事件。
将重新定位代码放入 Canvas' SizeChanged 事件的处理程序中:
private void Canvas_SizeChanged(object sender, SizeChangedEventArgs e)
{
Canvas canvas = (Canvas)sender;
foreach (var line in canvas.Children.OfType<Line>())
{
line.X1 = ...
line.X2 = ...
}
}
我有一个canvas,我想在上面画几条线。哪个工作正常。 但我也想移动线条,当 canvas 的大小更改为新位置时。所以我在每一行
添加了一个 Size_Changed 的事件处理程序liMonth.SizeChanged += LiMonth_SizeChanged;
但是,当我更改父级 window 的大小时,Canvas 的 Size_Changed 事件被触发,而不是该行的 Size_Changed 事件.
如何让 canvas 在大小更改时为其子项触发 size_changed 事件?
我在矩形上也有同样的问题,它也在 canvas 上,但我认为这是同样的问题。
A Canvas 从不调整其子元素的大小,因此不会为您的直线和矩形触发 SizeChanged 事件。
将重新定位代码放入 Canvas' SizeChanged 事件的处理程序中:
private void Canvas_SizeChanged(object sender, SizeChangedEventArgs e)
{
Canvas canvas = (Canvas)sender;
foreach (var line in canvas.Children.OfType<Line>())
{
line.X1 = ...
line.X2 = ...
}
}