Skip to content

Commit 4d28fe2

Browse files
Jay-o-Wayniels9001
andauthored
ScratchPadPage.xaml was broken, Grid was blocked (#1759)
## Description I noticed that the interactive area of the page did not receive any mouse input. Keyboard did work. I saw that conversion for `RowDefinitions="*, Auto"` was applied to the incorrect (child) Grid, causing the TextBlock to be in the same Grid cell as the RichInput. ## Motivation and Context Fix blocked input ## How Has This Been Tested? ## Types of changes - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) --------- Co-authored-by: Niels Laute <niels.laute@live.nl>
1 parent 71bb12e commit 4d28fe2

File tree

2 files changed

+67
-62
lines changed

2 files changed

+67
-62
lines changed

WinUIGallery/Samples/ControlPages/XamlFundamentals/ScratchPadPage.xaml

Lines changed: 46 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
Margin="0,12,0,0"
1111
BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}"
1212
BorderThickness="1"
13-
CornerRadius="8">
13+
CornerRadius="{StaticResource OverlayCornerRadius}">
1414
<Grid.RowDefinitions>
1515
<RowDefinition Height="*" />
1616
<RowDefinition Height="*" />
@@ -30,49 +30,52 @@
3030
Background="{ThemeResource ExpanderContentBackground}"
3131
BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"
3232
BorderThickness="0,1,0,0"
33-
CornerRadius="{ThemeResource ControlCornerRadius}">
34-
<Grid ColumnSpacing="12" RowSpacing="8">
35-
<Grid.ColumnDefinitions>
36-
<ColumnDefinition Width="*" />
37-
<ColumnDefinition Width="Auto" MinWidth="168" />
38-
</Grid.ColumnDefinitions>
39-
<Grid.RowDefinitions>
40-
<RowDefinition Height="*" />
41-
<RowDefinition Height="Auto" />
42-
</Grid.RowDefinitions>
43-
<RichEditBox
44-
x:Name="textbox"
45-
AcceptsReturn="True"
46-
ActualThemeChanged="textbox_ActualThemeChanged"
47-
AutomationProperties.Name="XAML markup textbox"
48-
FontFamily="Consolas"
49-
FontSize="12"
50-
IsSpellCheckEnabled="False"
51-
KeyDown="textbox_KeyDown"
52-
PreviewKeyDown="textbox_PreviewKeyDown"
53-
PreviewKeyUp="textbox_PreviewKeyUp"
54-
ScrollViewer.HorizontalScrollBarVisibility="Auto"
55-
ScrollViewer.VerticalScrollBarVisibility="Auto"
56-
TextChanged="textbox_TextChanged" />
57-
<StackPanel
58-
Grid.Column="1"
33+
ColumnSpacing="12"
34+
RowSpacing="8">
35+
<Grid.RowDefinitions>
36+
<RowDefinition Height="*" />
37+
<RowDefinition Height="Auto" />
38+
</Grid.RowDefinitions>
39+
<Grid.ColumnDefinitions>
40+
<ColumnDefinition Width="*" />
41+
<ColumnDefinition Width="Auto" MinWidth="168" />
42+
</Grid.ColumnDefinitions>
43+
44+
<RichEditBox
45+
x:Name="textbox"
46+
AcceptsReturn="True"
47+
ActualThemeChanged="textbox_ActualThemeChanged"
48+
AutomationProperties.Name="XAML markup textbox"
49+
FontFamily="Consolas"
50+
FontSize="12"
51+
IsSpellCheckEnabled="False"
52+
KeyDown="textbox_KeyDown"
53+
PreviewKeyDown="textbox_PreviewKeyDown"
54+
PreviewKeyUp="textbox_PreviewKeyUp"
55+
ScrollViewer.HorizontalScrollBarVisibility="Auto"
56+
ScrollViewer.VerticalScrollBarVisibility="Auto"
57+
TextChanged="textbox_TextChanged" />
58+
<StackPanel
59+
Grid.Column="1"
60+
HorizontalAlignment="Stretch"
61+
VerticalAlignment="Top"
62+
Spacing="8">
63+
<Button
64+
x:Name="loadButton"
65+
HorizontalAlignment="Stretch"
66+
Click="LoadClick"
67+
Content="Load"
68+
Style="{StaticResource AccentButtonStyle}" />
69+
<Button
5970
HorizontalAlignment="Stretch"
60-
VerticalAlignment="Top"
61-
Spacing="12">
62-
<Button
63-
x:Name="loadButton"
64-
HorizontalAlignment="Stretch"
65-
Click="LoadClick"
66-
Content="Load"
67-
Style="{StaticResource AccentButtonStyle}" />
68-
<Button
69-
HorizontalAlignment="Stretch"
70-
Click="ResetToDefaultClick"
71-
Content="Reset"
72-
ToolTipService.ToolTip="Resets to the default scratch pad content" />
73-
</StackPanel>
74-
</Grid>
75-
<TextBlock x:Name="loadStatus" Grid.Row="1" />
71+
Click="ResetToDefaultClick"
72+
Content="Reset"
73+
ToolTipService.ToolTip="Resets to the default scratch pad content" />
74+
</StackPanel>
75+
<TextBlock
76+
x:Name="loadStatus"
77+
Grid.Row="1"
78+
Grid.ColumnSpan="2" />
7679
</Grid>
7780
</Grid>
7881
</Page>

WinUIGallery/Samples/ControlPages/XamlFundamentals/ScratchPadPage.xaml.cs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
using System;
22
using System.Linq;
33
using Microsoft.UI.Input;
4+
using Microsoft.UI.Text;
45
using Microsoft.UI.Xaml;
56
using Microsoft.UI.Xaml.Controls;
67
using Microsoft.UI.Xaml.Input;
78
using Microsoft.UI.Xaml.Markup;
89
using Windows.Storage;
10+
using Windows.System;
911

1012
namespace WinUIGallery.ControlPages;
1113

@@ -24,7 +26,7 @@ public ScratchPadPage()
2426
}
2527

2628
m_oldText = xamlStr;
27-
textbox.TextDocument.SetText(Microsoft.UI.Text.TextSetOptions.None, m_oldText);
29+
textbox.TextDocument.SetText(TextSetOptions.None, m_oldText);
2830
var formatter = new XamlTextFormatter(textbox);
2931
formatter.ApplyColors();
3032

@@ -57,10 +59,10 @@ private string GetDefaultScratchXAML()
5759

5860
public string ReadScratchPadXAMLinLocalSettings()
5961
{
60-
var appData = Windows.Storage.ApplicationData.Current;
62+
var appData = ApplicationData.Current;
6163
if (appData.LocalSettings.Containers.ContainsKey("ScratchPad"))
6264
{
63-
var scratchPadContainer = appData.LocalSettings.CreateContainer("ScratchPad", Windows.Storage.ApplicationDataCreateDisposition.Existing);
65+
var scratchPadContainer = appData.LocalSettings.CreateContainer("ScratchPad", ApplicationDataCreateDisposition.Existing);
6466
if (scratchPadContainer != null && scratchPadContainer.Values.ContainsKey("ScratchPadXAML"))
6567
{
6668
// String values are limited to 4K characters. Use a composite value to support a longer string.
@@ -79,8 +81,8 @@ public string ReadScratchPadXAMLinLocalSettings()
7981

8082
public void SaveScratchPadXAMLinLocalSettings(string xamlStr)
8183
{
82-
var appData = Windows.Storage.ApplicationData.Current;
83-
var scratchPadContainer = appData.LocalSettings.CreateContainer("ScratchPad", Windows.Storage.ApplicationDataCreateDisposition.Always);
84+
var appData = ApplicationData.Current;
85+
var scratchPadContainer = appData.LocalSettings.CreateContainer("ScratchPad", ApplicationDataCreateDisposition.Always);
8486
// String values are limited to 4K characters. Use a composite value to support a longer string.
8587
var compositeStr = new ApplicationDataCompositeValue();
8688
int count = 0;
@@ -109,7 +111,7 @@ private async void ResetToDefaultClick(object sender, RoutedEventArgs e)
109111
if (result == ContentDialogResult.Primary)
110112
{
111113
m_oldText = GetDefaultScratchXAML();
112-
textbox.TextDocument.SetText(Microsoft.UI.Text.TextSetOptions.None, m_oldText);
114+
textbox.TextDocument.SetText(TextSetOptions.None, m_oldText);
113115
var formatter = new XamlTextFormatter(textbox);
114116
formatter.ApplyColors();
115117

@@ -136,7 +138,7 @@ private string AddXmlNamespace(string xml)
136138
private void LoadContent()
137139
{
138140
string newText;
139-
textbox.TextDocument.GetText(Microsoft.UI.Text.TextGetOptions.None, out newText);
141+
textbox.TextDocument.GetText(TextGetOptions.None, out newText);
140142
//System.Diagnostics.Debug.WriteLine("new text: " + newText);
141143

142144
SaveScratchPadXAMLinLocalSettings(newText);
@@ -180,7 +182,7 @@ private void InsertTextboxText(string str, bool setCursorAfterInsertedStr)
180182
private string GetTextboxTextPreviousLine()
181183
{
182184
string newText;
183-
textbox.TextDocument.GetText(Microsoft.UI.Text.TextGetOptions.None, out newText);
185+
textbox.TextDocument.GetText(TextGetOptions.None, out newText);
184186
var selectionIndex = textbox.TextDocument.Selection.StartPosition;
185187
if (selectionIndex > 0)
186188
{
@@ -230,7 +232,7 @@ private void textbox_KeyDown(object sender, KeyRoutedEventArgs e)
230232
var isShiftKeyDown = ((int)InputKeyboardSource.GetKeyStateForCurrentThread(Windows.System.VirtualKey.Shift) &
231233
(int)Windows.UI.Core.CoreVirtualKeyStates.Down) == (int)Windows.UI.Core.CoreVirtualKeyStates.Down;
232234
string text;
233-
textbox.TextDocument.GetText(Microsoft.UI.Text.TextGetOptions.None, out text);
235+
textbox.TextDocument.GetText(TextGetOptions.None, out text);
234236

235237
var selectionStart = textbox.TextDocument.Selection.StartPosition;
236238
var selectionEnd = selectionStart + textbox.TextDocument.Selection.Length;
@@ -246,20 +248,20 @@ private void textbox_KeyDown(object sender, KeyRoutedEventArgs e)
246248
selectionStart += 4;
247249
selectionEnd += 4;
248250

249-
range.Move(Microsoft.UI.Text.TextRangeUnit.Paragraph, 1);
251+
range.Move(TextRangeUnit.Paragraph, 1);
250252
while (range.StartPosition < selectionEnd)
251253
{
252254
range.Text = " ";
253255
selectionEnd += 4;
254-
range.Move(Microsoft.UI.Text.TextRangeUnit.Paragraph, 1);
256+
range.Move(TextRangeUnit.Paragraph, 1);
255257
}
256258
}
257259
else // Unindent
258260
{
259261
bool firstLine = true;
260262
while (range.StartPosition < selectionEnd)
261263
{
262-
range.MoveEnd(Microsoft.UI.Text.TextRangeUnit.Character, 4);
264+
range.MoveEnd(TextRangeUnit.Character, 4);
263265
var numWhitespace = range.Text.Count(char.IsWhiteSpace);
264266
range = textbox.TextDocument.GetRange(range.StartPosition, range.StartPosition + numWhitespace);
265267
range.Text = "";
@@ -269,7 +271,7 @@ private void textbox_KeyDown(object sender, KeyRoutedEventArgs e)
269271
selectionStart -= numWhitespace;
270272
}
271273
selectionEnd -= numWhitespace;
272-
range.Move(Microsoft.UI.Text.TextRangeUnit.Paragraph, 1);
274+
range.Move(TextRangeUnit.Paragraph, 1);
273275
}
274276
}
275277

@@ -287,11 +289,11 @@ private void textbox_PreviewKeyUp(object sender, KeyRoutedEventArgs e)
287289
m_lastChangeFromTyping = true;
288290
switch (e.Key)
289291
{
290-
case Windows.System.VirtualKey.F5:
292+
case VirtualKey.F5:
291293
LoadContentAndApplyFormatting();
292294
break;
293295

294-
case Windows.System.VirtualKey.Enter:
296+
case VirtualKey.Enter:
295297
HandleEnter();
296298
break;
297299
}
@@ -318,7 +320,7 @@ private void textbox_TextChanged(object sender, RoutedEventArgs e)
318320
}
319321

320322
string newText;
321-
textbox.TextDocument.GetText(Microsoft.UI.Text.TextGetOptions.None, out newText);
323+
textbox.TextDocument.GetText(TextGetOptions.None, out newText);
322324
if (newText.Length == m_oldText.Length + 1)
323325
{
324326
// Added just one character
@@ -367,12 +369,12 @@ private void textbox_TextChanged(object sender, RoutedEventArgs e)
367369
}
368370

369371
// Save the text so next time we can compare against the new text
370-
textbox.TextDocument.GetText(Microsoft.UI.Text.TextGetOptions.None, out m_oldText);
372+
textbox.TextDocument.GetText(TextGetOptions.None, out m_oldText);
371373
}
372374

373375
private void textbox_ActualThemeChanged(FrameworkElement sender, object args)
374376
{
375-
// Updating the formating for theme change
377+
// Updating the formatting for theme change
376378
var formatter = new XamlTextFormatter(textbox);
377379
formatter.ApplyColors();
378380
}
@@ -405,7 +407,7 @@ public void ApplyColors()
405407
doc.BeginUndoGroup();
406408

407409
string rebText;
408-
doc.GetText(Microsoft.UI.Text.TextGetOptions.None, out rebText);
410+
doc.GetText(TextGetOptions.None, out rebText);
409411

410412
var startIndex = 0;
411413
var currentZoneType = ZoneType.Unknown;

0 commit comments

Comments
 (0)