Skip to content

Commit 142eac8

Browse files
Merge pull request #3337 from windows-toolkit/mhawker/sample-fixes
Sample App Updates for Release
2 parents 987221b + 265d6c2 commit 142eac8

18 files changed

+171
-96
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,7 @@
553553
<Compile Include="SamplePages\StaggeredLayout\StaggeredLayoutPage.xaml.cs">
554554
<DependentUpon>StaggeredLayoutPage.xaml</DependentUpon>
555555
</Compile>
556+
<Compile Include="SamplePages\TokenizingTextBox\NameToColorConverter.cs" />
556557
<Compile Include="SamplePages\TokenizingTextBox\SampleDataType.cs" />
557558
<Compile Include="SamplePages\TokenizingTextBox\SampleEmailDataType.cs" />
558559
<Compile Include="SamplePages\TokenizingTextBox\TokenizingTextBoxPage.xaml.cs">
@@ -1637,4 +1638,4 @@
16371638
<Message Text="CSFiles: @(GeneratedCSFiles->'&quot;%(Identity)&quot;')" />
16381639
<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" />
16391640
</Target>
1640-
</Project>
1641+
</Project>

Microsoft.Toolkit.Uwp.SampleApp/Package.appxmanifest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" IgnorableNamespaces="uap mp uap3">
3-
<Identity Name="52b9212c-97a9-4639-9426-3e1ea9c1569e" Publisher="CN=Nikola" Version="6.0.0.0" />
3+
<Identity Name="52b9212c-97a9-4639-9426-3e1ea9c1569e" Publisher="CN=Nikola" Version="6.1.0.0" />
44
<mp:PhoneIdentity PhoneProductId="52b9212c-97a9-4639-9426-3e1ea9c1569e" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
55
<Properties>
66
<DisplayName>Microsoft.Toolkit.Uwp.SampleApp</DisplayName>

Microsoft.Toolkit.Uwp.SampleApp/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
[assembly: AssemblyTitle("Microsoft.Toolkit.Uwp.SampleApp")]
1212
[assembly: AssemblyDescription("")]
1313
[assembly: AssemblyConfiguration("")]
14-
[assembly: AssemblyCompany("")]
14+
[assembly: AssemblyCompany(".NET Foundation")]
1515
[assembly: AssemblyProduct("Microsoft.Toolkit.Uwp.SampleApp")]
16-
[assembly: AssemblyCopyright("Copyright © 2016")]
16+
[assembly: AssemblyCopyright("Copyright © 2016-2020")]
1717
[assembly: AssemblyTrademark("")]
1818
[assembly: AssemblyCulture("")]
1919

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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 Windows.UI;
7+
using Windows.UI.Xaml.Data;
8+
using Windows.UI.Xaml.Media;
9+
10+
namespace Microsoft.Toolkit.Uwp.SampleApp.SamplePages
11+
{
12+
public class NameToColorConverter : IValueConverter
13+
{
14+
public object Convert(object value, Type targetType, object parameter, string language)
15+
{
16+
var color = Colors.Black;
17+
18+
if (value != null)
19+
{
20+
var hash = value.GetHashCode();
21+
22+
var rnd = new Random(hash);
23+
24+
color = Color.FromArgb(255, (byte)rnd.Next(64, 192), (byte)rnd.Next(64, 192), (byte)rnd.Next(64, 192));
25+
}
26+
27+
return new SolidColorBrush(color);
28+
}
29+
30+
public object ConvertBack(object value, Type targetType, object parameter, string language)
31+
{
32+
throw new NotImplementedException();
33+
}
34+
}
35+
}

Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TokenizingTextBox/SampleEmailDataType.cs

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ namespace Microsoft.Toolkit.Uwp.SampleApp.SamplePages
1313
public class SampleEmailDataType
1414
{
1515
/// <summary>
16-
/// Gets or sets symbol to display.
16+
/// Gets the initials to Display
1717
/// </summary>
18-
public Symbol Icon { get; set; }
18+
public string Initials => string.Empty + FirstName[0] + FamilyName[0];
1919

2020
/// <summary>
2121
/// Gets or sets the first name .
@@ -30,24 +30,12 @@ public class SampleEmailDataType
3030
/// <summary>
3131
/// Gets the display text.
3232
/// </summary>
33-
public string DisplayName
34-
{
35-
get
36-
{
37-
return string.Format("{0} {1}", FirstName, FamilyName);
38-
}
39-
}
33+
public string DisplayName => $"{FirstName} {FamilyName}";
4034

4135
/// <summary>
4236
/// Gets the formatted email address
4337
/// </summary>
44-
public string EmailAddress
45-
{
46-
get
47-
{
48-
return string.Format("{0} <{1}.{2}@contoso.com>", DisplayName, FirstName, FamilyName);
49-
}
50-
}
38+
public string EmailAddress => $"{DisplayName} <{FirstName}.{FamilyName}@contoso.com>";
5139

5240
public override string ToString()
5341
{

Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TokenizingTextBox/TokenizingTextBoxPage.xaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@
44
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
55
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
66
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
7+
xmlns:local="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages"
78
mc:Ignorable="d">
8-
9+
<Page.Resources>
10+
<local:NameToColorConverter x:Key="NameToColorConverter"/>
11+
</Page.Resources>
12+
913
<Grid Visibility="Collapsed">
1014
<SymbolIcon Symbol="Accept"/>
1115
<controls:TokenizingTextBox />

Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TokenizingTextBox/TokenizingTextBoxPage.xaml.cs

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,31 +22,36 @@ public sealed partial class TokenizingTextBoxPage : Page, IXamlRenderListener
2222
//// TODO: We should use images here.
2323
private readonly List<SampleEmailDataType> _emailSamples = new List<SampleEmailDataType>()
2424
{
25-
new SampleEmailDataType() { FirstName = "Marcus", FamilyName = "Perryman", Icon = Symbol.Account },
26-
new SampleEmailDataType() { FirstName = "Ian", FamilyName = "Smith", Icon = Symbol.AddFriend },
27-
new SampleEmailDataType() { FirstName = "Peter", FamilyName = "Strange", Icon = Symbol.Attach },
28-
new SampleEmailDataType() { FirstName = "Alex", FamilyName = "Wilber", Icon = Symbol.AttachCamera },
29-
new SampleEmailDataType() { FirstName = "Allan", FamilyName = "Deyoung", Icon = Symbol.Audio },
30-
new SampleEmailDataType() { FirstName = "Adele", FamilyName = "Vance", Icon = Symbol.BlockContact },
31-
new SampleEmailDataType() { FirstName = "Grady", FamilyName = "Archie", Icon = Symbol.Calculator },
32-
new SampleEmailDataType() { FirstName = "Megan", FamilyName = "Bowen", Icon = Symbol.Calendar },
33-
new SampleEmailDataType() { FirstName = "Ben", FamilyName = "Walters", Icon = Symbol.Camera },
34-
new SampleEmailDataType() { FirstName = "Debra", FamilyName = "Berger", Icon = Symbol.Contact },
35-
new SampleEmailDataType() { FirstName = "Emily", FamilyName = "Braun", Icon = Symbol.Favorite },
36-
new SampleEmailDataType() { FirstName = "Christine", FamilyName = "Cline", Icon = Symbol.Link },
37-
new SampleEmailDataType() { FirstName = "Enrico", FamilyName = "Catteneo", Icon = Symbol.Mail },
38-
new SampleEmailDataType() { FirstName = "Davit", FamilyName = "Badalyan", Icon = Symbol.Map },
39-
new SampleEmailDataType() { FirstName = "Diego", FamilyName = "Siciliani", Icon = Symbol.Phone },
40-
new SampleEmailDataType() { FirstName = "Raul", FamilyName = "Razo", Icon = Symbol.Pin },
41-
new SampleEmailDataType() { FirstName = "Miriam", FamilyName = "Graham", Icon = Symbol.Rotate },
42-
new SampleEmailDataType() { FirstName = "Lynne", FamilyName = "Robbins", Icon = Symbol.RotateCamera },
43-
new SampleEmailDataType() { FirstName = "Lydia", FamilyName = "Holloway", Icon = Symbol.Send },
44-
new SampleEmailDataType() { FirstName = "Nestor", FamilyName = "Wilke", Icon = Symbol.Tag },
45-
new SampleEmailDataType() { FirstName = "Patti", FamilyName = "Fernandez", Icon = Symbol.UnFavorite },
46-
new SampleEmailDataType() { FirstName = "Pradeep", FamilyName = "Gupta", Icon = Symbol.UnPin },
47-
new SampleEmailDataType() { FirstName = "Joni", FamilyName = "Sherman", Icon = Symbol.Zoom },
48-
new SampleEmailDataType() { FirstName = "Isaiah", FamilyName = "Langer", Icon = Symbol.ZoomIn },
49-
new SampleEmailDataType() { FirstName = "Irvin", FamilyName = "Sayers", Icon = Symbol.ZoomOut },
25+
new SampleEmailDataType() { FirstName = "Marcus", FamilyName = "Perryman" },
26+
new SampleEmailDataType() { FirstName = "Michael", FamilyName = "Hawker" },
27+
new SampleEmailDataType() { FirstName = "Matt", FamilyName = "Lacey" },
28+
new SampleEmailDataType() { FirstName = "Alexandre", FamilyName = "Chohfi" },
29+
new SampleEmailDataType() { FirstName = "Filip", FamilyName = "Wallberg" },
30+
new SampleEmailDataType() { FirstName = "Shane", FamilyName = "Weaver" },
31+
new SampleEmailDataType() { FirstName = "Vincent", FamilyName = "Gromfeld" },
32+
new SampleEmailDataType() { FirstName = "Sergio", FamilyName = "Pedri" },
33+
new SampleEmailDataType() { FirstName = "Alex", FamilyName = "Wilber" },
34+
new SampleEmailDataType() { FirstName = "Allan", FamilyName = "Deyoung" },
35+
new SampleEmailDataType() { FirstName = "Adele", FamilyName = "Vance" },
36+
new SampleEmailDataType() { FirstName = "Grady", FamilyName = "Archie" },
37+
new SampleEmailDataType() { FirstName = "Megan", FamilyName = "Bowen" },
38+
new SampleEmailDataType() { FirstName = "Ben", FamilyName = "Walters" },
39+
new SampleEmailDataType() { FirstName = "Debra", FamilyName = "Berger" },
40+
new SampleEmailDataType() { FirstName = "Emily", FamilyName = "Braun" },
41+
new SampleEmailDataType() { FirstName = "Christine", FamilyName = "Cline" },
42+
new SampleEmailDataType() { FirstName = "Enrico", FamilyName = "Catteneo" },
43+
new SampleEmailDataType() { FirstName = "Davit", FamilyName = "Badalyan" },
44+
new SampleEmailDataType() { FirstName = "Diego", FamilyName = "Siciliani" },
45+
new SampleEmailDataType() { FirstName = "Raul", FamilyName = "Razo" },
46+
new SampleEmailDataType() { FirstName = "Miriam", FamilyName = "Graham" },
47+
new SampleEmailDataType() { FirstName = "Lynne", FamilyName = "Robbins" },
48+
new SampleEmailDataType() { FirstName = "Lydia", FamilyName = "Holloway" },
49+
new SampleEmailDataType() { FirstName = "Nestor", FamilyName = "Wilke" },
50+
new SampleEmailDataType() { FirstName = "Patti", FamilyName = "Fernandez" },
51+
new SampleEmailDataType() { FirstName = "Pradeep", FamilyName = "Gupta" },
52+
new SampleEmailDataType() { FirstName = "Joni", FamilyName = "Sherman" },
53+
new SampleEmailDataType() { FirstName = "Isaiah", FamilyName = "Langer" },
54+
new SampleEmailDataType() { FirstName = "Irvin", FamilyName = "Sayers" },
5055
};
5156

5257
// TODO: Setup ACV for this collection as well.

Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TokenizingTextBox/TokenizingTextBoxXaml.bind

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,38 @@
44
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
55
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
66
xmlns:ex="using:Microsoft.Toolkit.Uwp.UI.Extensions"
7+
xmlns:local="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages"
78
mc:Ignorable="d">
9+
<Page.Resources>
10+
<local:NameToColorConverter x:Key="NameToColorConverter"/>
11+
12+
<DataTemplate x:Key="EmailTokenTemplate">
13+
<StackPanel Orientation="Horizontal">
14+
<Border CornerRadius="9999" Background="{Binding DisplayName, Converter={StaticResource NameToColorConverter}}"
15+
Width="20" Height="20">
16+
<TextBlock Text="{Binding Initials}" Foreground="White"
17+
FontSize="10"
18+
FontWeight="Semibold"
19+
HorizontalAlignment="Center"
20+
VerticalAlignment="Center"/>
21+
</Border>
22+
<TextBlock Text="{Binding DisplayName}" Padding="4,0,0,0"/>
23+
</StackPanel>
24+
</DataTemplate>
25+
</Page.Resources>
826

927
<Grid Margin="40,40,40,40">
1028
<Grid.RowDefinitions>
1129
<RowDefinition/>
1230
<RowDefinition/>
1331
</Grid.RowDefinitions>
1432
<StackPanel>
15-
<TextBlock FontSize="32" Text="Select Actions"/>
33+
<TextBlock FontSize="32" Text="Select Actions"
34+
Margin="0,0,0,4"/>
1635
<controls:TokenizingTextBox
1736
x:Name="TokenBox"
1837
PlaceholderText="Add Actions"
19-
QueryIcon="{ex:SymbolIconSource Glyph=Setting}"
38+
QueryIcon="{ex:SymbolIconSource Symbol=Setting}"
2039
MaxHeight="104"
2140
HorizontalAlignment="Stretch"
2241
TextMemberPath="Text"
@@ -38,44 +57,31 @@
3857
</DataTemplate>
3958
</controls:TokenizingTextBox.TokenItemTemplate>
4059
</controls:TokenizingTextBox>
41-
<TextBlock>
60+
<TextBlock Margin="0,4,0,0">
4261
<Run>Current Edit: </Run>
4362
<Run Text="{Binding Text, ElementName=TokenBox}"/>
4463
</TextBlock>
4564
<ItemsControl ItemsSource="{Binding ItemsSource, ElementName=TokenBox}"/>
4665
</StackPanel>
4766

4867
<StackPanel Grid.Row="1">
49-
<TextBlock FontSize="32" Text="Select Email addresses"/>
68+
<TextBlock FontSize="32" Text="Select Email Addresses"
69+
Margin="0,0,0,4"/>
5070
<controls:TokenizingTextBox
5171
x:Name="TokenBoxEmail"
5272
PlaceholderText="Select Names"
5373
MaxHeight="104"
5474
HorizontalAlignment="Stretch"
55-
QueryIcon="{ex:SymbolIconSource Glyph=Find}"
75+
QueryIcon="{ex:SymbolIconSource Symbol=Find}"
5676
TextMemberPath="Text"
5777
TokenDelimiter=","
58-
IsItemClickEnabled="True">
59-
<controls:TokenizingTextBox.TokenItemTemplate>
60-
<DataTemplate>
61-
<StackPanel Orientation="Horizontal">
62-
<SymbolIcon Symbol="{Binding Icon}"/>
63-
<TextBlock Text="{Binding DisplayName}" Padding="4,0,0,0"/>
64-
</StackPanel>
65-
</DataTemplate>
66-
</controls:TokenizingTextBox.TokenItemTemplate>
78+
IsItemClickEnabled="True"
79+
TokenItemTemplate="{StaticResource EmailTokenTemplate}">
6780
</controls:TokenizingTextBox>
6881

69-
<Border BorderThickness="1" BorderBrush="Black">
70-
<ListView x:Name="EmailList" Height="200" IsItemClickEnabled="True">
71-
<ListView.ItemTemplate>
72-
<DataTemplate>
73-
<StackPanel Orientation="Horizontal">
74-
<SymbolIcon Symbol="{Binding Icon}"/>
75-
<TextBlock Text="{Binding DisplayName}" Padding="4,0,0,0"/>
76-
</StackPanel>
77-
</DataTemplate>
78-
</ListView.ItemTemplate>
82+
<Border BorderThickness="1,0,1,1" BorderBrush="{ThemeResource TextControlBorderBrush}">
83+
<ListView x:Name="EmailList" Height="200" IsItemClickEnabled="True"
84+
ItemTemplate="{StaticResource EmailTokenTemplate}">
7985
</ListView>
8086
</Border>
8187
</StackPanel>

Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ViewportBehavior/ViewportBehaviorPage.xaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@
44
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
55
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
66
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
7+
xmlns:behaviors="using:Microsoft.Toolkit.Uwp.UI.Behaviors"
78
mc:Ignorable="d">
9+
<Page.Resources>
10+
<behaviors:ViewportBehavior x:Key="ViewportBehavior" />
11+
</Page.Resources>
12+
813
<Grid>
914
<Grid.RowDefinitions>
1015
<RowDefinition Height="*" />

Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -839,7 +839,7 @@
839839
"CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/master/Microsoft.Toolkit/ObservableGroup",
840840
"CodeFile": "ObservableGroup.bind",
841841
"Icon": "/Assets/Helpers.png",
842-
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/ObservableGroup.md"
842+
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/collections/ObservableGroups.md"
843843
},
844844
{
845845
"Name": "CameraHelper",
@@ -930,6 +930,20 @@
930930
"Icon": "/SamplePages/WeatherLiveTileAndToast/WeatherLiveTileAndToast.png",
931931
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/notifications/NotificationsOverview.md"
932932
},
933+
{
934+
"Name": "Guard APIs",
935+
"Subcategory": "Developer",
936+
"About": "The Guard APIs can be used to validate method arguments in a streamlined manner, which is also faster, less verbose, more expressive and less error prone than manually writing checks and throwing exceptions.",
937+
"Icon": "/Assets/Helpers.png",
938+
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/developer-tools/Guard.md"
939+
},
940+
{
941+
"Name": "High Performance APIs",
942+
"Subcategory": "Developer",
943+
"About": "The High Performance package contains a set of APIs that are heavily focused on optimization. All the new APIs have been carefully crafted to achieve the best possible performance when using them, either through reduced memory allocation, micro-optimizations at the assembly level, or by structuring the APIs in a way that facilitates writing performance oriented code in general.",
944+
"Icon": "/Assets/Helpers.png",
945+
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/high-performance/Introduction.md"
946+
},
933947
{
934948
"Name": "PlatformSpecificAnalyzer",
935949
"Subcategory": "Developer",
@@ -969,7 +983,7 @@
969983
"DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/helpers/Triggers.md"
970984
},
971985
{
972-
"Name": "IsNullOrEmptyStateTriggers",
986+
"Name": "IsNullOrEmptyStateTrigger",
973987
"Type": "IsNullOrEmptyStateTriggerPage",
974988
"Subcategory": "State Triggers",
975989
"About": "Enables a state if an Object is null or a String/IEnumerable is empty",

0 commit comments

Comments
 (0)