public BitmapData Lock() { if (isLocked) { throw new InvalidOperationException(); } BitmapDataHandler bd = null; ApplicationHandler.InvokeIfNecessary(() => { Control.Lock(); bd = new BitmapDataHandler(Widget, Control.BackBuffer, Size.Width, Control.Format.BitsPerPixel, Control); }); isLocked = true; return(bd); }
public BitmapData Lock() { BitmapDataHandler handler = null; ApplicationHandler.InvokeIfNecessary(() => { var wb = Control as swm.Imaging.WriteableBitmap; if (wb != null) { wb.Lock(); handler = new BitmapDataHandler(Widget, wb.BackBuffer, (int)stride, Control.Format.BitsPerPixel, Control); } else { wb = new swm.Imaging.WriteableBitmap(Control); wb.Lock(); Control = wb; handler = new BitmapDataHandler(Widget, wb.BackBuffer, (int)stride, Control.Format.BitsPerPixel, wb); } }); return(handler); }