某处有一个有趣的边缘吗?

时间:2012-06-08 21:37:07

标签: c# visual-studio windows-phone-7 xaml

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

我创建了一个新控件并将其添加到空的WP7项目中。该控件的StackPanel名称为CanvasHeightWidth设置为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);
            }

我认为这会产生均匀间隔的线条,但事实并非如此。对于每条线,间距增大。那是为什么?

2 个答案:

答案 0 :(得分:2)

堆栈面板堆叠您的线条。由于其行程厚度,每条线的高度至少为2。此外,每条线的Y值增加了它的高度(更确切地说:到达其高度的边界框)。

答案 1 :(得分:0)

对于Silverlight,您可以使用Snoop for WPF equivelent,例如Silverlight Spy检查视觉树,看看哪个元素增加了宽度&amp;高度vs内部控件,或者即使该控件由于意外绑定而设置错误。