@@ -28,28 +28,20 @@ public partial class InfiniteCanvas
28
28
"Right" ,
29
29
"Up" ,
30
30
"Left" ,
31
- "Down"
31
+ "Down" ,
32
+ "Enter"
32
33
} ;
33
34
34
35
private Point _lastInputPoint ;
35
36
36
37
private TextDrawable SelectedTextDrawable => _drawingSurfaceRenderer . GetSelectedTextDrawable ( ) ;
37
38
38
- private float _lastValidTextFontSizeValue = DefaultFontValue ;
39
+ private float _textFontSize = DefaultFontValue ;
39
40
40
- private float TextFontSize
41
+ private void SetFontSize ( float newSize )
41
42
{
42
- get
43
- {
44
- if ( ! string . IsNullOrWhiteSpace ( _canvasComboBoxFontSizeTextBox . SelectedValue . ToString ( ) ) &&
45
- Regex . IsMatch ( _canvasComboBoxFontSizeTextBox . Text , "^[0-9]*$" ) )
46
- {
47
- var fontSize = float . Parse ( ( _canvasComboBoxFontSizeTextBox . SelectedItem as ComboBoxItem ) . Content . ToString ( ) ) ;
48
- _lastValidTextFontSizeValue = fontSize ;
49
- }
50
-
51
- return _lastValidTextFontSizeValue ;
52
- }
43
+ _textFontSize = newSize ;
44
+ _canvasTextBox . UpdateFontSize ( newSize ) ;
53
45
}
54
46
55
47
private void InkScrollViewer_PreviewKeyDown ( object sender , KeyRoutedEventArgs e )
@@ -95,11 +87,26 @@ private void CanvasTextBoxItalicButton_Clicked(object sender, RoutedEventArgs e)
95
87
96
88
private void CanvasComboBoxFontSizeTextBox_SelectionChanged ( object sender , SelectionChangedEventArgs e )
97
89
{
98
- _canvasTextBox . UpdateFontSize ( TextFontSize ) ;
99
- if ( SelectedTextDrawable != null )
90
+ if ( sender is ComboBox s
91
+ && s . SelectedItem is ComboBoxItem selectedItem
92
+ && selectedItem . Content is string selectedText
93
+ && float . TryParse ( selectedText , out var sizeNumb ) )
100
94
{
101
- _drawingSurfaceRenderer . ExecuteUpdateTextBoxFontSize ( TextFontSize ) ;
102
- ReDrawCanvas ( ) ;
95
+ SetFontSize ( sizeNumb ) ;
96
+
97
+ if ( SelectedTextDrawable != null )
98
+ {
99
+ _drawingSurfaceRenderer . ExecuteUpdateTextBoxFontSize ( sizeNumb ) ;
100
+ ReDrawCanvas ( ) ;
101
+ }
102
+ }
103
+ }
104
+
105
+ private void CanvasComboBoxFontSizeTextBox_TextSubmitted ( ComboBox sender , ComboBoxTextSubmittedEventArgs args )
106
+ {
107
+ if ( float . TryParse ( args . Text , out var size ) )
108
+ {
109
+ SetFontSize ( size ) ;
103
110
}
104
111
}
105
112
@@ -147,20 +154,22 @@ private void CanvasTextBox_TextChanged(object sender, string text)
147
154
ReDrawCanvas ( ) ;
148
155
return ;
149
156
}
157
+ else
158
+ {
159
+ _drawingSurfaceRenderer . ExecuteCreateTextBox (
160
+ _lastInputPoint . X ,
161
+ _lastInputPoint . Y ,
162
+ _canvasTextBox . GetEditZoneWidth ( ) ,
163
+ _canvasTextBox . GetEditZoneHeight ( ) ,
164
+ _textFontSize ,
165
+ text ,
166
+ _canvasTextBoxColorPicker . Color ,
167
+ _canvasTextBoxBoldButton . IsChecked ?? false ,
168
+ _canvasTextBoxItalicButton . IsChecked ?? false ) ;
150
169
151
- _drawingSurfaceRenderer . ExecuteCreateTextBox (
152
- _lastInputPoint . X ,
153
- _lastInputPoint . Y ,
154
- _canvasTextBox . GetEditZoneWidth ( ) ,
155
- _canvasTextBox . GetEditZoneHeight ( ) ,
156
- TextFontSize ,
157
- text ,
158
- _canvasTextBoxColorPicker . Color ,
159
- _canvasTextBoxBoldButton . IsChecked ?? false ,
160
- _canvasTextBoxItalicButton . IsChecked ?? false ) ;
161
-
162
- ReDrawCanvas ( ) ;
163
- _drawingSurfaceRenderer . UpdateSelectedTextDrawable ( ) ;
170
+ ReDrawCanvas ( ) ;
171
+ _drawingSurfaceRenderer . UpdateSelectedTextDrawable ( ) ;
172
+ }
164
173
}
165
174
166
175
private void InkScrollViewer_PointerPressed ( object sender , PointerRoutedEventArgs e )
@@ -179,7 +188,6 @@ private void InkScrollViewer_PointerPressed(object sender, PointerRoutedEventArg
179
188
180
189
Canvas . SetLeft ( _canvasTextBox , SelectedTextDrawable . Bounds . X ) ;
181
190
Canvas . SetTop ( _canvasTextBox , SelectedTextDrawable . Bounds . Y ) ;
182
- _canvasTextBox . UpdateFontSize ( SelectedTextDrawable . FontSize ) ;
183
191
_canvasTextBox . UpdateFontStyle ( SelectedTextDrawable . IsItalic ) ;
184
192
_canvasTextBox . UpdateFontWeight ( SelectedTextDrawable . IsBold ) ;
185
193
@@ -192,7 +200,6 @@ private void InkScrollViewer_PointerPressed(object sender, PointerRoutedEventArg
192
200
return ;
193
201
}
194
202
195
- _canvasTextBox . UpdateFontSize ( TextFontSize ) ;
196
203
_canvasTextBox . UpdateFontStyle ( _canvasTextBoxItalicButton . IsChecked ?? false ) ;
197
204
_canvasTextBox . UpdateFontWeight ( _canvasTextBoxBoldButton . IsChecked ?? false ) ;
198
205
0 commit comments