public BitmapRenderer(IViewHost <Bitmap> viewHost,
                       GdiMeasureContext measureContext,
                       GdiRenderContext renderContext)
     : this(viewHost, measureContext, renderContext,
            Color.White)
 {
 }
        public BitmapRenderer(IViewHost <Bitmap> viewHost,
                              GdiMeasureContext measureContext,
                              GdiRenderContext renderContext,
                              Color backgroundColor)
        {
            _eventLock = new Object();

            _lock       = new Object();
            _viewHost   = viewHost;
            _visualHost = viewHost;

            _visualHost.AvailableSizeChanged += OnHostSizeChanged;

            _measureContext = measureContext;
            _renderContext  = renderContext;
            _layoutQueue    = measureContext.LayoutQueue;
            _gdiDevice      = new GdiDevice(backgroundColor,
                                            _viewHost.AvailableSize);

            _renderRect = new Rectangle(0, 0, 1, 1);

            _hostRect = new ValueRectangle(0, 0, viewHost.AvailableSize);
        }