Skip to content

Commit 405f4b7

Browse files
Merge branch 'master' into marcpe/TokenizeTextBox
2 parents bfe9c81 + 01075ff commit 405f4b7

File tree

65 files changed

+3354
-5
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+3354
-5
lines changed
-3.07 MB
Loading

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

Lines changed: 95 additions & 1 deletion
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.2.190917002</Version>
118+
<Version>2.3.200213001</Version>
119119
</PackageReference>
120120
<PackageReference Include="Monaco.Editor">
121121
<Version>0.7.0-alpha</Version>
@@ -273,6 +273,7 @@
273273
<Content Include="SamplePages\OnDevice\OnDevice.png" />
274274
<Content Include="SamplePages\RemoteDeviceHelper\RemoteDeviceHelper.png" />
275275
<Content Include="SamplePages\ImageCropper\ImageCropper.png" />
276+
<Content Include="SamplePages\StaggeredLayout\StaggeredLayout.png" />
276277
<Content Include="SamplePages\TabView\TabView.png" />
277278
<Content Include="SamplePages\PeoplePicker\PeoplePicker.png" />
278279
<Content Include="SamplePages\PersonView\PersonView.png" />
@@ -367,6 +368,7 @@
367368
<Content Include="SamplePages\ViewportBehavior\ViewportBehavior.png" />
368369
<Content Include="SamplePages\Visual Extensions\VisualExtensions.png" />
369370
<Content Include="SamplePages\Weibo Service\WeiboLogo.png" />
371+
<Content Include="SamplePages\WrapLayout\WrapLayout.png" />
370372
<Content Include="SamplePages\WrapPanel\WrapPanel.png" />
371373
<Content Include="landingPageLinks.json" />
372374
<Content Include="Assets\mtns.csv">
@@ -531,11 +533,44 @@
531533
<Compile Include="SamplePages\ImageCropper\ImageCropperPage.xaml.cs">
532534
<DependentUpon>ImageCropperPage.xaml</DependentUpon>
533535
</Compile>
536+
<Compile Include="SamplePages\StaggeredLayout\StaggeredLayoutPage.xaml.cs">
537+
<DependentUpon>StaggeredLayoutPage.xaml</DependentUpon>
538+
</Compile>
534539
<Compile Include="SamplePages\TokenizingTextBox\SampleDataType.cs" />
535540
<Compile Include="SamplePages\TokenizingTextBox\SampleEmailDataType.cs" />
536541
<Compile Include="SamplePages\TokenizingTextBox\TokenizingTextBoxPage.xaml.cs">
537542
<DependentUpon>TokenizingTextBoxPage.xaml</DependentUpon>
538543
</Compile>
544+
<Compile Include="SamplePages\Triggers\CompareStateTriggerPage.xaml.cs">
545+
<DependentUpon>CompareStateTriggerPage.xaml</DependentUpon>
546+
</Compile>
547+
<Compile Include="SamplePages\Triggers\IsEqualStateTriggerPage.xaml.cs">
548+
<DependentUpon>IsEqualStateTriggerPage.xaml</DependentUpon>
549+
</Compile>
550+
<Compile Include="SamplePages\Triggers\FullScreenModeStateTriggerPage.xaml.cs">
551+
<DependentUpon>FullScreenModeStateTriggerPage.xaml</DependentUpon>
552+
</Compile>
553+
<Compile Include="SamplePages\Triggers\IsNullOrEmptyStateTriggerPage.xaml.cs">
554+
<DependentUpon>IsNullOrEmptyStateTriggerPage.xaml</DependentUpon>
555+
</Compile>
556+
<Compile Include="SamplePages\Triggers\NetworkConnectionStateTriggerPage.xaml.cs">
557+
<DependentUpon>NetworkConnectionStateTriggerPage.xaml</DependentUpon>
558+
</Compile>
559+
<Compile Include="SamplePages\Triggers\IsNotEqualStateTriggerPage.xaml.cs">
560+
<DependentUpon>IsNotEqualStateTriggerPage.xaml</DependentUpon>
561+
</Compile>
562+
<Compile Include="SamplePages\Triggers\RegexStateTriggerPage.xaml.cs">
563+
<DependentUpon>RegexStateTriggerPage.xaml</DependentUpon>
564+
</Compile>
565+
<Compile Include="SamplePages\Triggers\UserHandPreferenceStateTriggerPage.xaml.cs">
566+
<DependentUpon>UserHandPreferenceStateTriggerPage.xaml</DependentUpon>
567+
</Compile>
568+
<Compile Include="SamplePages\Triggers\UserInteractionModeStateTriggerPage.xaml.cs">
569+
<DependentUpon>UserInteractionModeStateTriggerPage.xaml</DependentUpon>
570+
</Compile>
571+
<Compile Include="SamplePages\WrapLayout\WrapLayoutPage.xaml.cs">
572+
<DependentUpon>WrapLayoutPage.xaml</DependentUpon>
573+
</Compile>
539574
<Compile Include="Shell.Search.cs" />
540575
<Compile Include="Shell.SamplePicker.cs" />
541576
<Content Include="SamplePages\ViewportBehavior\ViewportBehaviorXaml.bind" />
@@ -546,7 +581,18 @@
546581
<Content Include="SamplePages\Eyedropper\EyedropperXaml.bind" />
547582
<Content Include="SamplePages\Eyedropper\EyedropperCode.bind" />
548583
<Content Include="SamplePages\TokenizingTextBox\TokenizingTextBoxCode.bind" />
584+
<Content Include="SamplePages\WrapLayout\WrapLayout.bind" />
585+
<Content Include="SamplePages\StaggeredLayout\StaggeredLayout.bind" />
549586
<Content Include="SamplePages\ObservableGroup\ObservableGroup.bind" />
587+
<Content Include="SamplePages\Triggers\CompareStateTrigger.bind" />
588+
<Content Include="SamplePages\Triggers\IsEqualStateTrigger.bind" />
589+
<Content Include="SamplePages\Triggers\FullScreenModeStateTrigger.bind" />
590+
<Content Include="SamplePages\Triggers\IsNullOrEmptyStateTrigger.bind" />
591+
<Content Include="SamplePages\Triggers\NetworkConnectionStateTrigger.bind" />
592+
<Content Include="SamplePages\Triggers\IsNotEqualStateTrigger.bind" />
593+
<Content Include="SamplePages\Triggers\RegexStateTrigger.bind" />
594+
<Content Include="SamplePages\Triggers\UserHandPreferenceStateTrigger.bind" />
595+
<Content Include="SamplePages\Triggers\UserInteractionModeStateTrigger.bind" />
550596
</ItemGroup>
551597
<ItemGroup>
552598
<Compile Include="App.xaml.cs">
@@ -960,6 +1006,10 @@
9601006
<SubType>Designer</SubType>
9611007
<Generator>MSBuild:Compile</Generator>
9621008
</Page>
1009+
<Page Include="SamplePages\StaggeredLayout\StaggeredLayoutPage.xaml">
1010+
<SubType>Designer</SubType>
1011+
<Generator>MSBuild:Compile</Generator>
1012+
</Page>
9631013
<Page Include="SamplePages\TabView\TabViewPage.xaml">
9641014
<Generator>MSBuild:Compile</Generator>
9651015
<SubType>Designer</SubType>
@@ -1004,6 +1054,42 @@
10041054
<SubType>Designer</SubType>
10051055
<Generator>MSBuild:Compile</Generator>
10061056
</Content>
1057+
<Page Include="SamplePages\Triggers\CompareStateTriggerPage.xaml">
1058+
<Generator>MSBuild:Compile</Generator>
1059+
<SubType>Designer</SubType>
1060+
</Page>
1061+
<Page Include="SamplePages\Triggers\IsEqualStateTriggerPage.xaml">
1062+
<Generator>MSBuild:Compile</Generator>
1063+
<SubType>Designer</SubType>
1064+
</Page>
1065+
<Page Include="SamplePages\Triggers\FullScreenModeStateTriggerPage.xaml">
1066+
<Generator>MSBuild:Compile</Generator>
1067+
<SubType>Designer</SubType>
1068+
</Page>
1069+
<Page Include="SamplePages\Triggers\IsNullOrEmptyStateTriggerPage.xaml">
1070+
<Generator>MSBuild:Compile</Generator>
1071+
<SubType>Designer</SubType>
1072+
</Page>
1073+
<Page Include="SamplePages\Triggers\NetworkConnectionStateTriggerPage.xaml">
1074+
<Generator>MSBuild:Compile</Generator>
1075+
<SubType>Designer</SubType>
1076+
</Page>
1077+
<Page Include="SamplePages\Triggers\IsNotEqualStateTriggerPage.xaml">
1078+
<Generator>MSBuild:Compile</Generator>
1079+
<SubType>Designer</SubType>
1080+
</Page>
1081+
<Page Include="SamplePages\Triggers\RegexStateTriggerPage.xaml">
1082+
<Generator>MSBuild:Compile</Generator>
1083+
<SubType>Designer</SubType>
1084+
</Page>
1085+
<Page Include="SamplePages\Triggers\UserHandPreferenceStateTriggerPage.xaml">
1086+
<Generator>MSBuild:Compile</Generator>
1087+
<SubType>Designer</SubType>
1088+
</Page>
1089+
<Page Include="SamplePages\Triggers\UserInteractionModeStateTriggerPage.xaml">
1090+
<Generator>MSBuild:Compile</Generator>
1091+
<SubType>Designer</SubType>
1092+
</Page>
10071093
<Page Include="SamplePages\UniformGrid\UniformGridPage.xaml">
10081094
<Generator>MSBuild:Compile</Generator>
10091095
<SubType>Designer</SubType>
@@ -1336,6 +1422,10 @@
13361422
<SubType>Designer</SubType>
13371423
<Generator>MSBuild:Compile</Generator>
13381424
</Page>
1425+
<Page Include="SamplePages\WrapLayout\WrapLayoutPage.xaml">
1426+
<SubType>Designer</SubType>
1427+
<Generator>MSBuild:Compile</Generator>
1428+
</Page>
13391429
<Page Include="SamplePages\WrapPanel\WrapPanelPage.xaml">
13401430
<Generator>MSBuild:Compile</Generator>
13411431
<SubType>Designer</SubType>
@@ -1409,6 +1499,10 @@
14091499
<Project>{daeb9cec-c817-33b2-74b2-bc379380db72}</Project>
14101500
<Name>Microsoft.Toolkit.Uwp.UI.Controls.DataGrid</Name>
14111501
</ProjectReference>
1502+
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI.Controls.Layout\Microsoft.Toolkit.Uwp.UI.Controls.Layout.csproj">
1503+
<Project>{cb444381-18ba-4a51-bb32-3a498bcc1e99}</Project>
1504+
<Name>Microsoft.Toolkit.Uwp.UI.Controls.Layout</Name>
1505+
</ProjectReference>
14121506
<ProjectReference Include="..\Microsoft.Toolkit.Uwp.UI.Controls\Microsoft.Toolkit.Uwp.UI.Controls.csproj">
14131507
<Project>{e9faabfb-d726-42c1-83c1-cb46a29fea81}</Project>
14141508
<Name>Microsoft.Toolkit.Uwp.UI.Controls</Name>

Microsoft.Toolkit.Uwp.SampleApp/Models/Sample.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ public async Task PreparePropertyDescriptorAsync()
457457
XamlCode = await codeStream.ReadTextAsync(Encoding.UTF8);
458458

459459
// Look for @[] values and generate associated properties
460-
var regularExpression = new Regex(@"@\[(?<name>.+?)(:(?<type>.+?):(?<value>.+?)(:(?<parameters>.+?))?(:(?<options>.*))*)?\]@?");
460+
var regularExpression = new Regex("(?<=\\\")@\\[(?<name>.+?)(:(?<type>.+?):(?<value>.+?)(:(?<parameters>.+?))?(:(?<options>.*))*)?\\]@?(?=\\\")");
461461

462462
_propertyDescriptor = new PropertyDescriptor { Expando = new ExpandoObject() };
463463
var proxy = (IDictionary<string, object>)_propertyDescriptor.Expando;

Microsoft.Toolkit.Uwp.SampleApp/Package.appxmanifest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
</Resources>
1616
<Applications>
1717
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="Microsoft.Toolkit.Uwp.SampleApp.App">
18-
<uap:VisualElements DisplayName="Windows Community Toolkit Sample App" Square150x150Logo="Assets\UWPCommunityToolkitSampleAppMedTile.png" Square44x44Logo="Assets\UWPCommunityToolkitSampleAppAppList.png" Description="This app demonstrates the controls, services and APIs available in the Windows Community Toolkit. The toolkit is available as NuGet package for your C# or VB.NET projects. Source code of the toolkit and the sample app is available on GitHub." BackgroundColor="#3750D1">
18+
<uap:VisualElements DisplayName="[Debug] Windows Community Toolkit Sample App" Square150x150Logo="Assets\UWPCommunityToolkitSampleAppMedTile.png" Square44x44Logo="Assets\UWPCommunityToolkitSampleAppAppList.png" Description="This app demonstrates the controls, services and APIs available in the Windows Community Toolkit. The toolkit is available as NuGet package for your C# or VB.NET projects. Source code of the toolkit and the sample app is available on GitHub." BackgroundColor="#3750D1">
1919
<uap:LockScreen Notification="badge" BadgeLogo="Assets\UWPCommunityToolkitSampleAppBadgeLogo.png" />
2020
<uap:DefaultTile Wide310x150Logo="Assets\UWPCommunityToolkitSampleAppWideTile.png" Square310x310Logo="Assets\UWPCommunityToolkitSampleAppLargeTile.png" Square71x71Logo="Assets\UWPCommunityToolkitSampleAppSmallTile.png">
2121
<uap:ShowNameOnTiles>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
4+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5+
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
6+
xmlns:winui="using:Microsoft.UI.Xaml.Controls"
7+
mc:Ignorable="d">
8+
9+
<Page.Resources>
10+
<DataTemplate x:Key="StaggeredTemplate">
11+
<Grid Background="{ThemeResource Brush-Grey-04}">
12+
<Border Width="{Binding Width}" Height="{Binding Height}">
13+
<Border.Background>
14+
<SolidColorBrush Color="{Binding Color}"/>
15+
</Border.Background>
16+
<TextBlock Text="{Binding Index}" FontSize="20"/>
17+
</Border>
18+
</Grid>
19+
20+
</DataTemplate>
21+
</Page.Resources>
22+
23+
<Grid Padding="48">
24+
<ScrollViewer >
25+
<winui:ItemsRepeater x:Name="StaggeredRepeater"
26+
ItemTemplate="{StaticResource StaggeredTemplate}">
27+
<winui:ItemsRepeater.Layout>
28+
<controls:StaggeredLayout DesiredColumnWidth="@[DesiredColumnWidth:Slider:250:50-400]"
29+
ColumnSpacing="@[ColumnSpacing:Slider:5:0-50]@"
30+
RowSpacing="@[RowSpacing:Slider:5:0-50]@"/>
31+
</winui:ItemsRepeater.Layout>
32+
</winui:ItemsRepeater>
33+
</ScrollViewer>
34+
</Grid>
35+
</Page>
196 Bytes
Loading
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<Page
2+
x:Class="Microsoft.Toolkit.Uwp.SampleApp.SamplePages.StaggeredLayoutPage"
3+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5+
xmlns:local="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages.StaggeredLayout"
6+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
7+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
8+
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
9+
mc:Ignorable="d"
10+
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
11+
12+
<Page.Resources>
13+
<controls:StaggeredLayout x:Key="WrapLayoutPlaceholder"/>
14+
</Page.Resources>
15+
</Page>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
using System;
6+
using System.Collections.ObjectModel;
7+
using Microsoft.Toolkit.Uwp.UI.Extensions;
8+
using Microsoft.UI.Xaml.Controls;
9+
using Windows.UI;
10+
using Windows.UI.Xaml;
11+
using Windows.UI.Xaml.Controls;
12+
13+
namespace Microsoft.Toolkit.Uwp.SampleApp.SamplePages
14+
{
15+
/// <summary>
16+
/// An empty page that can be used on its own or navigated to within a Frame.
17+
/// </summary>
18+
public sealed partial class StaggeredLayoutPage : Page, IXamlRenderListener
19+
{
20+
private ObservableCollection<Item> _items = new ObservableCollection<Item>();
21+
private Random _random;
22+
23+
public StaggeredLayoutPage()
24+
{
25+
this.InitializeComponent();
26+
27+
_random = new Random(DateTime.Now.Millisecond);
28+
for (int i = 0; i < _random.Next(1000, 5000); i++)
29+
{
30+
var item = new Item { Index = i, Width = _random.Next(50, 250), Height = _random.Next(50, 250), Color = Color.FromArgb(255, (byte)_random.Next(0, 255), (byte)_random.Next(0, 255), (byte)_random.Next(0, 255)) };
31+
_items.Add(item);
32+
}
33+
}
34+
35+
public void OnXamlRendered(FrameworkElement control)
36+
{
37+
var repeater = control.FindChildByName("StaggeredRepeater") as ItemsRepeater;
38+
39+
if (repeater != null)
40+
{
41+
repeater.ItemsSource = _items;
42+
}
43+
}
44+
45+
private class Item
46+
{
47+
public int Index { get; internal set; }
48+
49+
public int Width { get; internal set; }
50+
51+
public int Height { get; internal set; }
52+
53+
public Color Color { get; internal set; }
54+
}
55+
}
56+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<Page
2+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
5+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
6+
xmlns:triggers="using:Microsoft.Toolkit.Uwp.UI.Triggers"
7+
mc:Ignorable="d">
8+
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
9+
10+
<VisualStateManager.VisualStateGroups>
11+
12+
<VisualStateGroup >
13+
<VisualState x:Name="Less">
14+
<VisualState.StateTriggers>
15+
<triggers:CompareStateTrigger Value="{Binding Value, ElementName=Slider, Mode=OneWay}" To="3" Comparison="LessThan" />
16+
</VisualState.StateTriggers>
17+
<VisualState.Setters>
18+
<Setter Target="SliderStatus.Text" Value="Slider value is less than 3" />
19+
</VisualState.Setters>
20+
</VisualState>
21+
<VisualState x:Name="Equal">
22+
<VisualState.StateTriggers>
23+
<triggers:CompareStateTrigger Value="{Binding Value, ElementName=Slider, Mode=OneWay}" To="3" Comparison="Equal" />
24+
</VisualState.StateTriggers>
25+
<VisualState.Setters>
26+
<Setter Target="SliderStatus.Text" Value="Slider value is 3" />
27+
</VisualState.Setters>
28+
</VisualState>
29+
<VisualState x:Name="Greater">
30+
<VisualState.StateTriggers>
31+
<triggers:CompareStateTrigger Value="{Binding Value, ElementName=Slider, Mode=OneWay}" To="3" Comparison="GreaterThan" />
32+
</VisualState.StateTriggers>
33+
<VisualState.Setters>
34+
<Setter Target="SliderStatus.Text" Value="Slider value is greater than 3" />
35+
</VisualState.Setters>
36+
</VisualState>
37+
</VisualStateGroup>
38+
<VisualStateGroup>
39+
<VisualState x:Name="GreaterThanOrEqual">
40+
<VisualState.StateTriggers>
41+
<triggers:CompareStateTrigger Value="{Binding Value, ElementName=Slider2, Mode=OneWay}" To="4" Comparison="GreaterThanOrEqual" />
42+
</VisualState.StateTriggers>
43+
<VisualState.Setters>
44+
<Setter Target="SliderStatus2.Text" Value="Slider value is 4 or greater" />
45+
</VisualState.Setters>
46+
</VisualState>
47+
<VisualState x:Name="LessThanOrEqual">
48+
<VisualState.StateTriggers>
49+
<triggers:CompareStateTrigger Value="{Binding Value, ElementName=Slider2, Mode=OneWay}" To="2" Comparison="LessThanOrEqual" />
50+
</VisualState.StateTriggers>
51+
<VisualState.Setters>
52+
<Setter Target="SliderStatus2.Text" Value="Slider value is 2 or less" />
53+
</VisualState.Setters>
54+
</VisualState>
55+
</VisualStateGroup>
56+
</VisualStateManager.VisualStateGroups>
57+
58+
<StackPanel VerticalAlignment="Center" MaxWidth="400">
59+
<Slider x:Name="Slider" Minimum="0" Maximum="5" />
60+
<TextBlock x:Name="SliderStatus" Text="If you see this, trigger isn't working" />
61+
<Slider x:Name="Slider2" Minimum="0" Maximum="5" />
62+
<TextBlock x:Name="SliderStatus2" Text="Slider value is 3" />
63+
</StackPanel>
64+
65+
</Grid>
66+
</Page>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<Page
2+
x:Class="Microsoft.Toolkit.Uwp.SampleApp.SamplePages.CompareStateTriggerPage"
3+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5+
xmlns:local="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages"
6+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
7+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
8+
xmlns:triggers="using:Microsoft.Toolkit.Uwp.UI.Triggers"
9+
mc:Ignorable="d"
10+
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
11+
<Page.Resources>
12+
<!-- Dummy Resource for Optimization Protection -->
13+
<triggers:CompareStateTrigger x:Key="CompareStateTrigger"/>
14+
</Page.Resources>
15+
</Page>

0 commit comments

Comments
 (0)