private async Task <Rect> InvokeRenderMethodReturnBoundingBox(string method, params object[] args) { var task = await this.BrowserMainFrame.EvaluateScriptAsync(PrimitiveRenderer.CreateJavascriptCall(method, args)); var result = (Dictionary <string, object>)task.Result; return(PrimitiveRenderer.CreateBoundingBox(result)); }
private async Task <Rect> InvokeAsyncRenderMethodReturnBoundingBox(string method, params object[] args) { await BrowserContext.CallbackObject.Acquire(); await this.BrowserMainFrame.EvaluateScriptAsync(PrimitiveRenderer.CreateJavascriptCall(method, args)); SpinWait.SpinUntil(() => BrowserContext.CallbackObject.IsCalledBack); var result = BrowserContext.CallbackObject.Result; BrowserContext.CallbackObject.Release(); return(PrimitiveRenderer.CreateBoundingBox(result)); }
public async Task <Rect> DrawEllipseAroundNotes(Rect bounds) { var builder = new StringBuilder(); builder.Append($"renderer.drawEllipseAroundBounds({{ left: {bounds.X}, top: {bounds.Y}, width: {bounds.Width}, height: {bounds.Height} }});"); Debug.WriteLine(builder.ToString()); var task = await this.BrowserMainFrame.EvaluateScriptAsync(builder.ToString()); var result = (Dictionary <string, object>)task.Result; return(PrimitiveRenderer.CreateBoundingBox(result)); }