1

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

我创建了一个新控件并将其添加到一个空的 WP7 项目中。该控件具有一个StackPanel名称Canvas和设置HeightWidth400。

刚开始我写了一些代码来看看:

            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);
            }

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

4

2 回答 2

2

堆栈面板堆叠您的行。由于其笔划粗细,每条线的高度至少为 2。此外,每条线的 Y 值会添加到其高度(更准确地说:添加到从中得出高度的边界框)。

于 2012-06-08T22:02:23.557 回答
0

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

于 2012-06-08T22:13:48.463 回答