@@ -105,6 +105,74 @@ private void Window_StateChanged(object sender, EventArgs e)
105
105
106
106
#endregion
107
107
108
+ #region Control Events
109
+
110
+ private void MarkdownViewer_Loaded ( object sender , RoutedEventArgs e )
111
+ {
112
+ RefreshMarkdownViewer ( ) ;
113
+ }
114
+
115
+ private void RefreshButton_Click ( object sender , RoutedEventArgs e )
116
+ {
117
+ RefreshButton . Visibility = Visibility . Collapsed ;
118
+ RefreshProgressRing . Visibility = Visibility . Visible ;
119
+ RefreshMarkdownViewer ( ) ;
120
+ }
121
+
122
+ [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Usage" , "VSTHRD100:Avoid async void methods" , Justification = "<Pending>" ) ]
123
+ private async void RefreshMarkdownViewer ( )
124
+ {
125
+ var output = await GetReleaseNotesMarkdownAsync ( ) . ConfigureAwait ( false ) ;
126
+
127
+ Application . Current . Dispatcher . Invoke ( ( ) =>
128
+ {
129
+ RefreshProgressRing . Visibility = Visibility . Collapsed ;
130
+ if ( string . IsNullOrEmpty ( output ) )
131
+ {
132
+ RefreshButton . Visibility = Visibility . Visible ;
133
+ MarkdownViewer . Visibility = Visibility . Collapsed ;
134
+ }
135
+ else
136
+ {
137
+ RefreshButton . Visibility = Visibility . Collapsed ;
138
+ MarkdownViewer . Markdown = output ;
139
+ MarkdownViewer . Visibility = Visibility . Visible ;
140
+ }
141
+ } ) ;
142
+ }
143
+
144
+ private void Grid_SizeChanged ( object sender , SizeChangedEventArgs e )
145
+ {
146
+ MarkdownScrollViewer . Height = e . NewSize . Height ;
147
+ MarkdownScrollViewer . Width = e . NewSize . Width ;
148
+ }
149
+
150
+ private void MarkdownViewer_MouseWheel ( object sender , MouseWheelEventArgs e )
151
+ {
152
+ RaiseMouseWheelEvent ( sender , e ) ;
153
+ }
154
+
155
+ private void MarkdownViewer_PreviewMouseWheel ( object sender , MouseWheelEventArgs e )
156
+ {
157
+ RaiseMouseWheelEvent ( sender , e ) ;
158
+ }
159
+
160
+ private void RaiseMouseWheelEvent ( object sender , MouseWheelEventArgs e )
161
+ {
162
+ e . Handled = true ; // Prevent the inner control from handling the event
163
+
164
+ var eventArg = new MouseWheelEventArgs ( e . MouseDevice , e . Timestamp , e . Delta )
165
+ {
166
+ RoutedEvent = UIElement . MouseWheelEvent ,
167
+ Source = sender
168
+ } ;
169
+
170
+ // Raise the event on the parent ScrollViewer
171
+ MarkdownScrollViewer . RaiseEvent ( eventArg ) ;
172
+ }
173
+
174
+ #endregion
175
+
108
176
#region Release Notes
109
177
110
178
private static async Task < string > GetReleaseNotesMarkdownAsync ( )
@@ -180,73 +248,5 @@ private sealed class GitHubReleaseInfo
180
248
private static partial Regex ImageUnitRegex ( ) ;
181
249
182
250
#endregion
183
-
184
- #region Control Events
185
-
186
- private void MarkdownViewer_Loaded ( object sender , RoutedEventArgs e )
187
- {
188
- RefreshMarkdownViewer ( ) ;
189
- }
190
-
191
- private void RefreshButton_Click ( object sender , RoutedEventArgs e )
192
- {
193
- RefreshButton . Visibility = Visibility . Collapsed ;
194
- RefreshProgressRing . Visibility = Visibility . Visible ;
195
- RefreshMarkdownViewer ( ) ;
196
- }
197
-
198
- [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Usage" , "VSTHRD100:Avoid async void methods" , Justification = "<Pending>" ) ]
199
- private async void RefreshMarkdownViewer ( )
200
- {
201
- var output = await GetReleaseNotesMarkdownAsync ( ) . ConfigureAwait ( false ) ;
202
-
203
- Application . Current . Dispatcher . Invoke ( ( ) =>
204
- {
205
- RefreshProgressRing . Visibility = Visibility . Collapsed ;
206
- if ( string . IsNullOrEmpty ( output ) )
207
- {
208
- RefreshButton . Visibility = Visibility . Visible ;
209
- MarkdownViewer . Visibility = Visibility . Collapsed ;
210
- }
211
- else
212
- {
213
- RefreshButton . Visibility = Visibility . Collapsed ;
214
- MarkdownViewer . Markdown = output ;
215
- MarkdownViewer . Visibility = Visibility . Visible ;
216
- }
217
- } ) ;
218
- }
219
-
220
- private void Grid_SizeChanged ( object sender , SizeChangedEventArgs e )
221
- {
222
- MarkdownScrollViewer . Height = e . NewSize . Height ;
223
- MarkdownScrollViewer . Width = e . NewSize . Width ;
224
- }
225
-
226
- private void MarkdownViewer_MouseWheel ( object sender , MouseWheelEventArgs e )
227
- {
228
- RaiseMouseWheelEvent ( sender , e ) ;
229
- }
230
-
231
- private void MarkdownViewer_PreviewMouseWheel ( object sender , MouseWheelEventArgs e )
232
- {
233
- RaiseMouseWheelEvent ( sender , e ) ;
234
- }
235
-
236
- private void RaiseMouseWheelEvent ( object sender , MouseWheelEventArgs e )
237
- {
238
- e . Handled = true ; // Prevent the inner control from handling the event
239
-
240
- var eventArg = new MouseWheelEventArgs ( e . MouseDevice , e . Timestamp , e . Delta )
241
- {
242
- RoutedEvent = UIElement . MouseWheelEvent ,
243
- Source = sender
244
- } ;
245
-
246
- // Raise the event on the parent ScrollViewer
247
- MarkdownScrollViewer . RaiseEvent ( eventArg ) ;
248
- }
249
-
250
- #endregion
251
251
}
252
252
}
0 commit comments