Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 0859453

Browse files
committed
Fix a Null Ref Exception in Thumbnail View
(happend for Example on wrong XAML Code)
1 parent ee07c9f commit 0859453

1 file changed

Lines changed: 37 additions & 29 deletions

File tree

  • src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ThumbnailView

src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ThumbnailView/ThumbnailView.cs

Lines changed: 37 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)