Yes, that could be a way to do it, but it is very ugly. Also, it nukes your performance because you’re basically drawing everything twice. The DrawingSurface should work (although also lowering performance)… There’s a problem with graphics device at these lines:
// Create the Direct3D 11 API device object and a corresponding context.
using (var defaultDevice = new SharpDX.Direct3D11.Device(SharpDX.Direct3D.DriverType.Hardware, creationFlags, featureLevels))
_device = defaultDevice.QueryInterface<SharpDX.Direct3D11.Device1>();