Skip to content

Commit ced5b7d

Browse files
Merge pull request #3291 from windows-toolkit/mhawker/winui-2.4
Update to WinUI 2.4
2 parents 971c68f + c381151 commit ced5b7d

File tree

5 files changed

+132
-20
lines changed

5 files changed

+132
-20
lines changed

Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@
115115
<Version>6.1.0-build.6</Version>
116116
</PackageReference>
117117
<PackageReference Include="Microsoft.UI.Xaml">
118-
<Version>2.3.200213001</Version>
118+
<Version>2.4.2</Version>
119119
</PackageReference>
120120
<PackageReference Include="Monaco.Editor">
121121
<Version>0.7.0-alpha</Version>
@@ -1633,4 +1633,4 @@
16331633
<Message Text="CSFiles: @(GeneratedCSFiles->'&quot;%(Identity)&quot;')" />
16341634
<Exec Command="for %%f in (@(GeneratedCSFiles->'&quot;%(Identity)&quot;')) do echo #pragma warning disable &gt; %%f.temp &amp;&amp; type %%f | findstr /v /b &quot;#pragma&quot; &gt;&gt; %%f.temp &amp;&amp; move /y %%f.temp %%f &gt; NUL" />
16351635
</Target>
1636-
</Project>
1636+
</Project>

Microsoft.Toolkit.Uwp.SampleApp/Shell.SamplePicker.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Collections.Generic;
77
using System.Linq;
88
using System.Numerics;
9+
using System.Threading;
910
using System.Threading.Tasks;
1011
using Microsoft.Toolkit.Uwp.Helpers;
1112
using Microsoft.Toolkit.Uwp.SampleApp.Pages;
@@ -126,7 +127,15 @@ SamplePickerGridView.ItemsSource is Sample[] currentSamples &&
126127

127128
private void NavView_ItemInvoked(Microsoft.UI.Xaml.Controls.NavigationView sender, Microsoft.UI.Xaml.Controls.NavigationViewItemInvokedEventArgs args)
128129
{
129-
if (args.InvokedItem is SampleCategory category)
130+
//// Temp Workaround for WinUI Bug https://github.com/microsoft/microsoft-ui-xaml/issues/2520
131+
var invokedItem = args.InvokedItem;
132+
if (invokedItem is FrameworkElement fe && fe.DataContext is SampleCategory cat2)
133+
{
134+
invokedItem = cat2;
135+
}
136+
//// End Workaround - args.InvokedItem
137+
138+
if (invokedItem is SampleCategory category)
130139
{
131140
if (SamplePickerGrid.Visibility != Visibility.Collapsed && _selectedCategory == category)
132141
{

Microsoft.Toolkit.Uwp.SampleApp/Styles/Generic.xaml

Lines changed: 55 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1119,16 +1119,30 @@
11191119
Grid.Column="2"/>
11201120

11211121
<!-- Top nav list -->
1122-
<winui:NavigationViewList AutomationProperties.LandmarkType="Navigation" x:Name="TopNavMenuItemsHost" Grid.Column="3" SelectionMode="Single" IsItemClickEnabled="True" ItemTemplate="{TemplateBinding MenuItemTemplate}" ItemTemplateSelector="{TemplateBinding MenuItemTemplateSelector}" ItemContainerStyle="{TemplateBinding MenuItemContainerStyle}" ItemContainerStyleSelector="{TemplateBinding MenuItemContainerStyleSelector}" ScrollViewer.HorizontalScrollMode="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.VerticalScrollBarVisibility="Hidden" SingleSelectionFollowsFocus="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.SingleSelectionFollowsFocus}">
1123-
<ListView.ItemsPanel>
1124-
<ItemsPanelTemplate>
1125-
<ItemsStackPanel Orientation="Horizontal" />
1126-
</ItemsPanelTemplate>
1127-
</ListView.ItemsPanel>
1128-
<ListView.ItemContainerTransitions>
1129-
<TransitionCollection />
1130-
</ListView.ItemContainerTransitions>
1131-
</winui:NavigationViewList>
1122+
<winui:ItemsRepeaterScrollHost
1123+
AutomationProperties.LandmarkType="Navigation"
1124+
Grid.Column="3"
1125+
ScrollViewer.HorizontalScrollMode="Disabled"
1126+
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
1127+
ScrollViewer.VerticalScrollMode="Disabled"
1128+
ScrollViewer.VerticalScrollBarVisibility="Hidden">
1129+
<ScrollViewer
1130+
HorizontalScrollMode="Disabled"
1131+
HorizontalScrollBarVisibility="Hidden"
1132+
VerticalScrollMode="Disabled"
1133+
VerticalScrollBarVisibility="Hidden">
1134+
<winui:ItemsRepeater
1135+
x:Name="TopNavMenuItemsHost"
1136+
ItemTemplate="{TemplateBinding MenuItemTemplateSelector}"
1137+
AutomationProperties.LandmarkType="Navigation"
1138+
AutomationProperties.Name="{TemplateBinding AutomationProperties.Name}"
1139+
AutomationProperties.AccessibilityView = "Content">
1140+
<winui:ItemsRepeater.Layout>
1141+
<winui:StackLayout Orientation="Horizontal"/>
1142+
</winui:ItemsRepeater.Layout>
1143+
</winui:ItemsRepeater>
1144+
</ScrollViewer>
1145+
</winui:ItemsRepeaterScrollHost>
11321146

11331147
<Button
11341148
x:Name="TopNavOverflowButton"
@@ -1150,11 +1164,18 @@
11501164
<Setter Property="Margin" Value="0,-4,0,0" />
11511165
</Style>
11521166
</Flyout.FlyoutPresenterStyle>
1153-
<winui:NavigationViewList x:Name="TopNavMenuItemsOverflowHost" ItemTemplate="{TemplateBinding MenuItemTemplate}" ItemTemplateSelector="{TemplateBinding MenuItemTemplateSelector}" ItemContainerStyle="{TemplateBinding MenuItemContainerStyle}" ItemContainerStyleSelector="{TemplateBinding MenuItemContainerStyleSelector}" SingleSelectionFollowsFocus="False" IsItemClickEnabled="True">
1154-
<ListView.ItemContainerTransitions>
1155-
<TransitionCollection />
1156-
</ListView.ItemContainerTransitions>
1157-
</winui:NavigationViewList>
1167+
<winui:ItemsRepeaterScrollHost>
1168+
<ScrollViewer VerticalScrollBarVisibility="Auto">
1169+
<winui:ItemsRepeater
1170+
x:Name="TopNavMenuItemsOverflowHost"
1171+
ItemTemplate="{TemplateBinding MenuItemTemplateSelector}"
1172+
AutomationProperties.AccessibilityView = "Content">
1173+
<winui:ItemsRepeater.Layout>
1174+
<winui:StackLayout Orientation="Vertical"/>
1175+
</winui:ItemsRepeater.Layout>
1176+
</winui:ItemsRepeater>
1177+
</ScrollViewer>
1178+
</winui:ItemsRepeaterScrollHost>
11581179
</Flyout>
11591180
</Button.Flyout>
11601181
</Button>
@@ -1282,7 +1303,25 @@
12821303
Grid.Row="4" />
12831304

12841305
<!-- Left nav list -->
1285-
<winui:NavigationViewList x:Name="MenuItemsHost" Grid.Row="6" SingleSelectionFollowsFocus="False" Margin="0,0,0,20" SelectionMode="Single" IsItemClickEnabled="True" HorizontalAlignment="Stretch" SelectedItem="{TemplateBinding SelectedItem}" ItemTemplate="{TemplateBinding MenuItemTemplate}" ItemTemplateSelector="{TemplateBinding MenuItemTemplateSelector}" ItemContainerStyle="{TemplateBinding MenuItemContainerStyle}" ItemContainerStyleSelector="{TemplateBinding MenuItemContainerStyleSelector}" />
1306+
<winui:ItemsRepeaterScrollHost
1307+
Grid.Row="6"
1308+
Margin="0,0,0,20"
1309+
HorizontalAlignment="Stretch"
1310+
VerticalAlignment="Top">
1311+
<ScrollViewer
1312+
TabNavigation="Once"
1313+
VerticalScrollBarVisibility="Auto">
1314+
<winui:ItemsRepeater
1315+
x:Name="MenuItemsHost"
1316+
ItemTemplate="{TemplateBinding MenuItemTemplateSelector}"
1317+
AutomationProperties.Name="{TemplateBinding AutomationProperties.Name}"
1318+
AutomationProperties.AccessibilityView = "Content">
1319+
<winui:ItemsRepeater.Layout>
1320+
<winui:StackLayout Orientation="Vertical"/>
1321+
</winui:ItemsRepeater.Layout>
1322+
</winui:ItemsRepeater>
1323+
</ScrollViewer>
1324+
</winui:ItemsRepeaterScrollHost>
12861325

12871326
<ContentControl
12881327
x:Name="FooterContentBorder"

Microsoft.Toolkit.Uwp.UI.Controls.Layout/Microsoft.Toolkit.Uwp.UI.Controls.Layout.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
</ItemGroup>
1616

1717
<ItemGroup>
18-
<PackageReference Include="Microsoft.UI.Xaml" Version="2.3.200213001" />
18+
<PackageReference Include="Microsoft.UI.Xaml" Version="2.4.2" />
1919
</ItemGroup>
2020

2121
<Import Project="$(MSBuildSDKExtrasTargets)" Condition="Exists('$(MSBuildSDKExtrasTargets)')" />

Microsoft.Toolkit.Uwp.UI.Controls/TokenizingTextBox/TokenizingTextBoxItem.AutoSuggestBox.xaml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,12 +305,76 @@
305305
ItemTemplate="{Binding Path=Owner.SuggestedItemTemplate, RelativeSource={RelativeSource Mode=TemplatedParent}}"
306306
ItemsSource="{Binding Path=Owner.SuggestedItemsSource, RelativeSource={RelativeSource Mode=TemplatedParent}}"
307307
PlaceholderText="{Binding Path=Owner.PlaceholderText, RelativeSource={RelativeSource Mode=TemplatedParent}}"
308+
Style="{StaticResource SystemAutoSuggestBoxStyle}"
308309
Text="{Binding Text, Mode=TwoWay}"
309310
TextBoxStyle="{StaticResource TokenizingTextBoxTextBoxStyle}"/>
310311
<!-- TODO: Visual State to style autosuggestbox based on focus? -->
311312
</ControlTemplate>
312313
</Setter.Value>
313314
</Setter>
314315
</Style>
316+
317+
<!-- Copy of System Style from 18362 to try and workaround WinUI Styles -->
318+
<Style TargetType="AutoSuggestBox" x:Key="SystemAutoSuggestBoxStyle">
319+
<Setter Property="VerticalAlignment" Value="Top" />
320+
<Setter Property="IsTabStop" Value="False" />
321+
<Setter Property="TextBoxStyle" Value="{StaticResource AutoSuggestBoxTextBoxStyle}" />
322+
<Setter Property="UseSystemFocusVisuals" Value="{ThemeResource IsApplicationFocusVisualKindReveal}" />
323+
<Setter Property="Template">
324+
<Setter.Value>
325+
<ControlTemplate TargetType="AutoSuggestBox">
326+
<Grid x:Name="LayoutRoot">
327+
328+
<VisualStateManager.VisualStateGroups>
329+
<VisualStateGroup x:Name="Orientation">
330+
<VisualState x:Name="Landscape" />
331+
<VisualState x:Name="Portrait" />
332+
333+
</VisualStateGroup>
334+
335+
</VisualStateManager.VisualStateGroups>
336+
337+
<Grid.ColumnDefinitions>
338+
<ColumnDefinition Width="*" />
339+
</Grid.ColumnDefinitions>
340+
341+
<Grid.RowDefinitions>
342+
<RowDefinition Height="*" />
343+
</Grid.RowDefinitions>
344+
345+
<TextBox x:Name="TextBox"
346+
Style="{TemplateBinding TextBoxStyle}"
347+
PlaceholderText="{TemplateBinding PlaceholderText}"
348+
Header="{TemplateBinding Header}"
349+
Width="{TemplateBinding Width}"
350+
ScrollViewer.BringIntoViewOnFocusChange="False"
351+
Canvas.ZIndex="0"
352+
Margin="0"
353+
DesiredCandidateWindowAlignment="BottomEdge"
354+
UseSystemFocusVisuals="{TemplateBinding UseSystemFocusVisuals}" />
355+
356+
<Popup x:Name="SuggestionsPopup">
357+
<Border x:Name="SuggestionsContainer">
358+
<ListView x:Name="SuggestionsList"
359+
Background="{ThemeResource AutoSuggestBoxSuggestionsListBackground}"
360+
BorderThickness="{ThemeResource AutoSuggestListBorderThemeThickness}"
361+
BorderBrush="{ThemeResource AutoSuggestBoxSuggestionsListBorderBrush}"
362+
DisplayMemberPath="{TemplateBinding DisplayMemberPath}"
363+
IsItemClickEnabled="True"
364+
ItemTemplate="{TemplateBinding ItemTemplate}"
365+
ItemTemplateSelector="{TemplateBinding ItemTemplateSelector}"
366+
ItemContainerStyle="{TemplateBinding ItemContainerStyle}"
367+
MaxHeight="{ThemeResource AutoSuggestListMaxHeight}"
368+
Margin="{ThemeResource AutoSuggestListMargin}"
369+
Padding="{ThemeResource AutoSuggestListPadding}" />
370+
</Border>
371+
</Popup>
372+
373+
</Grid>
374+
375+
</ControlTemplate>
376+
</Setter.Value>
377+
</Setter>
378+
</Style>
315379
</ResourceDictionary>
316380

0 commit comments

Comments
 (0)