@@ -244,42 +244,35 @@ public override void Render(DrawingContext context)
244244 var right = NewImage ;
245245 var drawLeft = left != null && alpha < 1.0 ;
246246 var drawRight = right != null && alpha > 0 ;
247- var psize = left == null ? right . PixelSize : left . PixelSize ;
248- var dpi = left == null ? right . Dpi : left . Dpi ;
249247
250- using ( var rt = new RenderTargetBitmap ( psize , dpi ) )
248+ if ( drawLeft && drawRight )
251249 {
252- var rtRect = new Rect ( rt . Size ) ;
253- using ( var dc = rt . CreateDrawingContext ( ) )
250+ using ( var rt = new RenderTargetBitmap ( right . PixelSize , right . Dpi ) )
254251 {
255- if ( drawLeft )
256- {
257- if ( drawRight )
258- {
259- using ( dc . PushRenderOptions ( RO_SRC ) )
260- using ( dc . PushOpacity ( 1 - alpha ) )
261- dc . DrawImage ( left , rtRect ) ;
262-
263- using ( dc . PushRenderOptions ( RO_DST ) )
264- using ( dc . PushOpacity ( alpha ) )
265- dc . DrawImage ( right , rtRect ) ;
266- }
267- else
268- {
269- using ( dc . PushRenderOptions ( RO_SRC ) )
270- using ( dc . PushOpacity ( 1 - alpha ) )
271- dc . DrawImage ( left , rtRect ) ;
272- }
273- }
274- else if ( drawRight )
252+ var rtRect = new Rect ( rt . Size ) ;
253+ using ( var dc = rt . CreateDrawingContext ( ) )
275254 {
276255 using ( dc . PushRenderOptions ( RO_SRC ) )
256+ using ( dc . PushOpacity ( 1 - alpha ) )
257+ dc . DrawImage ( left , rtRect ) ;
258+
259+ using ( dc . PushRenderOptions ( RO_DST ) )
277260 using ( dc . PushOpacity ( alpha ) )
278261 dc . DrawImage ( right , rtRect ) ;
279262 }
280- }
281263
282- context . DrawImage ( rt , rtRect , rect ) ;
264+ context . DrawImage ( rt , rtRect , rect ) ;
265+ }
266+ }
267+ else if ( drawLeft )
268+ {
269+ using ( context . PushOpacity ( 1 - alpha ) )
270+ context . DrawImage ( left , rect ) ;
271+ }
272+ else if ( drawRight )
273+ {
274+ using ( context . PushOpacity ( alpha ) )
275+ context . DrawImage ( right , rect ) ;
283276 }
284277 }
285278
0 commit comments