某处是否有有趣的边际
本文关键字:是否 | 更新日期: 2023-09-27 18:36:47
我正在尝试创建自己的图形控件,但是x线遇到了一些问题。
我创建了一个新控件,并将其添加到一个空的 WP7 项目中。该控件具有名称为 Canvas
和 Height
的StackPanel
,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);
}
我认为这会创建均匀分布的线条,但事实并非如此。 对于每行,间距都会增加。为什么?
堆栈面板可堆叠线条。由于描边粗细,每条线的高度至少为两。此外,每条线的 Y 值会增加其高度(更准确地说:添加到从中派生高度的边界框)。
您可以使用 Snoop for WPF 等效于 Silverlight,例如 Silverlight Spy 来检查可视化树,并查看哪个元素与内部控件相比增加了宽度和高度,或者即使该控件由于意外绑定而具有错误的设置。