我有一个基于XAML的ScatterView
我正在编程地添加更多Scatterviews(从此以后称为Scatter2s)。ScatterViewItem.Center(X和Y)属性返回NaN
每个Scatter2s
都可以正常工作 - 它们每个都包含ScatterViewItem
s,而其中包含Ellipse
形状,并且这些都是按照需要完美地绘制到Surface上的。
在试图在两个椭圆之间画线时,我试图获得Scatter2.[AScatterViewItem].Center.X
和.Y
属性,所以我可以设置线的X1Y1,X2Y2属性,但它们返回为NaN。我也试过ActualCenter
,结果相同。
我最初认为这是因为我试图在椭圆在屏幕上绘制之前访问这些属性,但是在绘制和相同结果后我打印了属性值。
我检查过,以确保每个ScatterViewItem
的宽度和高度都是在绘制之前明确设置的,椭圆的宽度和高度也是如此 - 以防万一会抛出中心属性的计算。
有没有更好的方式来获得一个ScatterViewItem
的位置,这个位置还没有被明确定位,而不是使用Center属性?
感谢
在节点:
public void CenterToString()
{
Console.Out.WriteLine("Actual centre: " + svi.ActualCenter.toString());
Console.Out.WriteLine("Centre: " + svi.Center.toString());
}
在我的主类
Node node_one = ((GeneNetwork) context).getNode(localNodeIds[0]);
node_one.CenterToString();
给输出:
实际CE ntre到字符串:NaN时,为NaN
中心到字符串:NaN时,为NaN
增加了一个Node
到主ScatterView
(context.Items.Add(svi)
)代码的CenterToString()
功能之前被调用。
难道它与我将它放在我的SurfaceWindow类中的位置有关吗?目前,在致电base.OnInitialised
之后,所有内容均在onInitialised()
之间。
请注意,如果我使用有效的Point对象初始化Center属性,但它确实会返回值,但我希望Surface放置项目本身。 – ataulm