我正在尝试创建自己的图形控件,但是我对x线有一些问题。
我创建了一个新控件并将其添加到空的WP7项目中。该控件的StackPanel
名称为Canvas
,Height
和Width
设置为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);
}
我认为这会产生均匀间隔的线条,但事实并非如此。对于每条线,间距增大。那是为什么?
答案 0 :(得分:2)
堆栈面板堆叠您的线条。由于其行程厚度,每条线的高度至少为2。此外,每条线的Y值增加了它的高度(更确切地说:到达其高度的边界框)。
答案 1 :(得分:0)
对于Silverlight,您可以使用Snoop for WPF equivelent,例如Silverlight Spy检查视觉树,看看哪个元素增加了宽度&amp;高度vs内部控件,或者即使该控件由于意外绑定而设置错误。