I have a XAML based ScatterView
to which I'm programmatically adding more Scatterviews (henceforth known as Scatter2s).
Each of the Scatter2s
work fine - they each contain ScatterViewItem
s which in turn contain an Ellipse
shape, and these are all drawn to the Surface perfectly as wanted.
In trying to draw lines between two ellipses, I attempt to get the Scatter2.[AScatterViewItem].Center.X
and .Y
properties, so I can set the X1Y1,X2Y2 properties of the line, but they return as NaN. I've also tried ActualCenter
which results in the same outcome.
I initially thought it was because I was trying to access these properties before the ellipses were drawn on screen, but I printed the property values after they've been drawn and same result.
I checked to ensure that each of the ScatterViewItem
s width and height are explicitly set before drawing, as are the ellipse width and height - just in case that would throw the calculation of a center property off.
Is there a better way to get the position of a ScatterViewItem
which has not been explicitly positioned than using the Center property?
Thanks
In Node:
public void CenterToString()
{
Console.Out.WriteLine("Actual centre: " + svi.ActualCenter.toString());
Console.Out.WriteLine("Centre: " + svi.Center.toString());
}
In my main class
Node node_one = ((GeneNetwork) context).getNode(localNodeIds[0]);
node_one.CenterToString();
gives output:
Actual centre to string: NaN,NaN
Centre to string: NaN,NaN
The code which adds a Node
to the main ScatterView
(context.Items.Add(svi)
) is called before the CenterToString()
function.
Could it have anything to do with where I'm placing this in my SurfaceWindow class? Currently, everything is in onInitialised()
, after the call to base.OnInitialised
.