@@ -114,38 +114,46 @@ private void Thumb_DragDelta(object sender, DragDeltaEventArgs e)
114114
115115 private void InvalidateScale ( out double scale , out double xOffset , out double yOffset )
116116 {
117- var designedElement = this . DesignSurface . DesignContext . RootItem . Component as FrameworkElement ;
117+ scale = 1 ;
118+ xOffset = 0 ;
119+ yOffset = 0 ;
118120
119- var fac1 = designedElement . ActualWidth / zoomCanvas . ActualWidth ;
120- var fac2 = designedElement . ActualHeight / zoomCanvas . ActualHeight ;
121-
122- // zoom canvas size
123- double x = this . zoomCanvas . ActualWidth ;
124- double y = this . zoomCanvas . ActualHeight ;
125-
126- if ( fac1 < fac2 )
121+ if ( this . DesignSurface . DesignContext != null )
127122 {
128- x = designedElement . ActualWidth / fac2 ;
129- xOffset = ( zoomCanvas . ActualWidth - x ) / 2 ;
130- yOffset = 0 ;
131- }
132- else
133- {
134- y = designedElement . ActualHeight / fac1 ;
135- xOffset = 0 ;
136- yOffset = ( zoomCanvas . ActualHeight - y ) / 2 ;
137- }
138-
139- double w = designedElement . ActualWidth ;
140- double h = designedElement . ActualHeight ;
141-
142- double scaleX = x / w ;
143- double scaleY = y / h ;
123+ var designedElement = this . DesignSurface . DesignContext . RootItem . Component as FrameworkElement ;
124+
125+
126+ var fac1 = designedElement . ActualWidth / zoomCanvas . ActualWidth ;
127+ var fac2 = designedElement . ActualHeight / zoomCanvas . ActualHeight ;
128+
129+ // zoom canvas size
130+ double x = this . zoomCanvas . ActualWidth ;
131+ double y = this . zoomCanvas . ActualHeight ;
132+
133+ if ( fac1 < fac2 )
134+ {
135+ x = designedElement . ActualWidth / fac2 ;
136+ xOffset = ( zoomCanvas . ActualWidth - x ) / 2 ;
137+ yOffset = 0 ;
138+ }
139+ else
140+ {
141+ y = designedElement . ActualHeight / fac1 ;
142+ xOffset = 0 ;
143+ yOffset = ( zoomCanvas . ActualHeight - y ) / 2 ;
144+ }
145+
146+ double w = designedElement . ActualWidth ;
147+ double h = designedElement . ActualHeight ;
148+
149+ double scaleX = x / w ;
150+ double scaleY = y / h ;
144151
145- scale = ( scaleX < scaleY ) ? scaleX : scaleY ;
146-
147- xOffset += ( x - scale * w ) / 2 ;
148- yOffset += ( y - scale * h ) / 2 ;
152+ scale = ( scaleX < scaleY ) ? scaleX : scaleY ;
153+
154+ xOffset += ( x - scale * w ) / 2 ;
155+ yOffset += ( y - scale * h ) / 2 ;
156+ }
149157 }
150158
151159 public event PropertyChangedEventHandler PropertyChanged ;
0 commit comments