我有一个基于 XAML 的 XAML ScatterView
,我正在以编程方式添加更多 Scatterviews(以下称为 Scatter2s)。
每个Scatter2s
工作都很好 - 它们每个都包含ScatterViewItem
s ,而这些 s 又包含一个Ellipse
形状,并且这些都按照需要完美地绘制到 Surface 上。
在尝试在两个椭圆之间画线时,我尝试获取Scatter2.[AScatterViewItem].Center.X
和.Y
属性,因此我可以设置线的 X1Y1、X2Y2 属性,但它们返回为 NaN。我也尝试过ActualCenter
导致相同结果的结果。
我最初认为这是因为我试图在屏幕上绘制椭圆之前访问这些属性,但我在绘制它们之后打印了属性值并且结果相同。
我检查以确保ScatterViewItem
在绘制之前明确设置每个 s 宽度和高度,椭圆宽度和高度也是如此 - 以防万一会导致计算中心属性。
有没有比使用 Center 属性更好的方法来获取ScatterViewItem
尚未明确定位的 a 的位置?
谢谢
在节点中:
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();
给出输出:
字符串的实际中心:NaN,NaN
字符串的中心:NaN,NaN
将 a 添加Node
到 main ScatterView
( context.Items.Add(svi)
) 的代码在CenterToString()
函数之前调用。
它与我在 SurfaceWindow 类中放置它的位置有什么关系吗?目前,一切都在onInitialised()
,在调用之后base.OnInitialised
。