我有一个画布,我想画几行。哪个工作正常。 但是当画布的大小变为新位置时,我也想移动线条。所以我已经为每行添加了一个Size_Changed的事件处理程序
liMonth.SizeChanged += LiMonth_SizeChanged;
但是,当我更改父窗口的大小时,会触发Canvas的Size_Changed事件,但不会触发该行的Size_Changed事件。
如果尺寸发生变化,如何让画布为其子节点触发size_changed事件?
我对一个矩形有同样的问题,它也在画布上,但我认为这是同样的问题。
答案 0 :(得分:0)
Canvas永远不会调整其子元素的大小,因此没有为Line和Rectangles触发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 = ...
}
}