某处是否有有趣的边际

本文关键字:是否 | 更新日期: 2023-09-27 18:36:47

我正在尝试创建自己的图形控件,但是x线遇到了一些问题。

我创建了一个新控件,并将其添加到一个空的 WP7 项目中。该控件具有名称为 CanvasHeightStackPanelWidth设置为 400。

为了开始,我写了一些代码来了解一下:

            double yStepping = Canvas.Height/5;
            double y = 0;
            // generate x lines
            for (int k = 0; k < 3; k++)
            {
                y += 10;
                Line l = new Line()
                {
                    Stroke = new SolidColorBrush(Colors.White),
                    StrokeThickness = 2,
                    X1 = 10,
                    Y1 = y,
                    X2 = 100,
                    Y2 = y
                };
                Canvas.Children.Add(l);
            }

我认为这会创建均匀分布的线条,但事实并非如此。 对于每行,间距都会增加。为什么?

某处是否有有趣的边际

堆栈面板可堆叠线条。由于描边粗细,每条线的高度至少为两。此外,每条线的 Y 值会增加其高度(更准确地说:添加到从中派生高度的边界框)。

您可以使用 Snoop for WPF 等效于 Silverlight,例如 Silverlight Spy 来检查可视化树,并查看哪个元素与内部控件相比增加了宽度和高度,或者即使该控件由于意外绑定而具有错误的设置。