protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.FlutterPage);

            Canvas = FindViewById <SKCanvasView>(Resource.Id.skiaView);

            var scale = Resources.DisplayMetrics.Density;

            if (Canvas != null)
            {
                Surface = new FlutterSurface(scale);
            }

            Canvas.PaintSurface += OnCanvasPaintSurface;
        }
        /// <exception cref="ArgumentNullException"></exception>
        /// <inheritdoc />
        protected override void OnApplyTemplate()
        {
            if (Canvas != null)
            {
                Canvas.PaintSurface -= OnCanvasOnPaintSurface;
            }

            Canvas = GetTemplateChild(CanvasKey) as SKXamlCanvas;
            if (Canvas == null)
            {
                return;
            }

            var display = DisplayInformation.GetForCurrentView();
            var scale   = display.LogicalDpi / 96.0f;

            Surface              = new FlutterSurface(scale);
            Canvas.PaintSurface += OnCanvasOnPaintSurface;

            base.OnApplyTemplate();
        }