From 75f309921cad136d45605addb27756dd73514b31 Mon Sep 17 00:00:00 2001 From: Matthias Shapiro Date: Wed, 23 Mar 2016 12:38:42 -0700 Subject: [PATCH 1/5] Updates to Module 1 - End, Module 2 - Begin projects --- .../Models/Restaurant.cs | 6 + .../Microsoft.Labs.SightsToSee/App.xaml | 2 +- .../Microsoft.Labs.SightsToSee/App.xaml.cs | 2 + .../Assets/Images/Sights2SeeLogo.png | Bin 0 -> 17411 bytes .../Controls/BlurredBackgroundControl.xaml | 4 + .../Controls/BlurredBackgroundControl.xaml.cs | 112 +++- .../Controls/EatsControl.xaml | 186 ++++--- .../Microsoft.Labs.SightsToSee.csproj | 1 + .../Styles/Styles.xaml | 486 +++++++++++++++++- .../Views/EatsControlViewModel.cs | 25 + .../Views/SightDetailPage.xaml | 382 ++++++++++---- .../Views/TripDetailPage.xaml | 105 ++-- .../Models/Restaurant.cs | 9 +- .../Microsoft.Labs.SightsToSee/App.xaml | 2 +- .../Microsoft.Labs.SightsToSee/App.xaml.cs | 2 + .../Assets/Sights2SeeLogo.png | Bin 0 -> 17411 bytes .../Assets/Tile_Logo.png | Bin 0 -> 13105 bytes .../Controls/BlurredBackgroundControl.xaml | 6 +- .../Controls/BlurredBackgroundControl.xaml.cs | 112 +++- .../Controls/EatsControl.xaml | 186 ++++--- .../Microsoft.Labs.SightsToSee.csproj | 2 + .../Styles/Styles.xaml | 486 +++++++++++++++++- .../Views/EatsControlViewModel.cs | 33 +- .../Views/SightDetailPage.xaml | 390 +++++++++----- .../Views/TripDetailPage.xaml | 79 +-- .../Controls/EatsControl.xaml | 66 +-- 26 files changed, 2079 insertions(+), 605 deletions(-) create mode 100644 Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Images/Sights2SeeLogo.png create mode 100644 Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Sights2SeeLogo.png create mode 100644 Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Tile_Logo.png diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs index 1210b03..b9aa91d 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs @@ -255,4 +255,10 @@ protected virtual void OnPropertyChanged([CallerMemberName] string propertyName PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } + + public class EatsGroup + { + public string GroupName { get; set; } + public List ListOfEats { get; set; } + } } \ No newline at end of file diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml index 008f69c..240ffe2 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml @@ -30,7 +30,7 @@ - + diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs index 111ac1e..f2b786a 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs @@ -154,6 +154,8 @@ private void SetupTitleBarColors() titleBar.ButtonHoverForegroundColor = titleBarButtonHoverForeground.Color; titleBar.ButtonPressedBackgroundColor = titleBarButtonPressedBackground.Color; titleBar.ButtonPressedForegroundColor = titleBarButtonPressedForeground.Color; + titleBar.InactiveBackgroundColor = titleBarInactiveBackground.Color; + titleBar.InactiveForegroundColor = titleBarInactiveForeground.Color; titleBar.ButtonInactiveBackgroundColor = titleBarButtonInactiveBackground.Color; titleBar.ButtonInactiveForegroundColor = titleBarButtonInactiveForeground.Color; diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Images/Sights2SeeLogo.png b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Images/Sights2SeeLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..a1818693ea43d2717f642c7e38440a852e55f35a GIT binary patch literal 17411 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 N&+Y@eo*B|E{U2aI6Nmr+ literal 0 HcmV?d00001 diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml index 4df7261..fdf9b7d 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml @@ -11,8 +11,12 @@ d:DesignWidth="400"> + + + + { + control.BlurredBackImage.Invalidate(); + }; fadeOut.Begin(); fadeOut.Completed += (sender, o) => { @@ -141,30 +167,61 @@ private void BlurredImage_Draw(CanvasControl sender, CanvasDrawEventArgs args) var imageHeight = _backgroundBitmap.Bounds.Height; var imageWidth = _backgroundBitmap.Bounds.Width; - var scale = Math.Min(BlurredImage.ActualWidth/imageWidth, BlurredImage.ActualHeight/imageHeight); + var scale = Math.Min(BlurredImage.ActualWidth / imageWidth, BlurredImage.ActualHeight / imageHeight); double xOffset = 0, yOffset = 0; - if (Math.Abs(imageWidth*scale - BlurredImage.ActualWidth) < 1) + if (Math.Abs(imageWidth * scale - BlurredImage.ActualWidth) < 1) { // Basically the same width, we need to scale up for the height to fit - var newScale = BlurredImage.ActualHeight/(imageHeight*scale); + var newScale = BlurredImage.ActualHeight / (imageHeight * scale); scale *= newScale; } else { - var newScale = BlurredImage.ActualWidth/(imageWidth*scale); + var newScale = BlurredImage.ActualWidth / (imageWidth * scale); scale *= newScale; } - yOffset = (BlurredImage.ActualHeight - imageHeight*scale)/2.0; - xOffset = (BlurredImage.ActualWidth - imageWidth*scale)/2.0; + yOffset = (BlurredImage.ActualHeight - imageHeight * scale) / 2.0; + xOffset = (BlurredImage.ActualWidth - imageWidth * scale) / 2.0; args.DrawingSession.DrawImage(_blurEffect, - new Rect(xOffset, yOffset, imageWidth*scale, imageHeight*scale), + new Rect(xOffset, yOffset, imageWidth * scale, imageHeight * scale), _backgroundBitmap.Bounds); } } + private void AltBlurredImage_Draw(CanvasControl sender, CanvasDrawEventArgs args) + { + if (_altBackBitmap != null) + { + var imageHeight = _altBackBitmap.Bounds.Height; + var imageWidth = _altBackBitmap.Bounds.Width; + + var scale = Math.Min(BlurredImage.ActualWidth / imageWidth, BlurredImage.ActualHeight / imageHeight); + + double xOffset = 0, yOffset = 0; + if (Math.Abs(imageWidth * scale - BlurredImage.ActualWidth) < 1) + { + // Basically the same width, we need to scale up for the height to fit + var newScale = BlurredImage.ActualHeight / (imageHeight * scale); + scale *= newScale; + } + else + { + var newScale = BlurredImage.ActualWidth / (imageWidth * scale); + scale *= newScale; + } + + yOffset = (BlurredImage.ActualHeight - imageHeight * scale) / 2.0; + xOffset = (BlurredImage.ActualWidth - imageWidth * scale) / 2.0; + + args.DrawingSession.DrawImage(_blurEffect, + new Rect(xOffset, yOffset, imageWidth * scale, imageHeight * scale), + _altBackBitmap.Bounds); + } + } + private void BlurredImage_CreateResources(CanvasControl sender, CanvasCreateResourcesEventArgs args) { args.TrackAsyncAction(CreateResourcesAsync(sender).AsAsyncAction()); @@ -177,12 +234,21 @@ private async Task CreateResourcesAsync(CanvasControl sender) { #if !EFCOREHACK _backgroundBitmap = - await CanvasBitmap.LoadAsync(sender, ((BitmapImage) BackgroundImageSource).UriSource); + await CanvasBitmap.LoadAsync(sender, ((BitmapImage)BackgroundImageSource).UriSource); _blurEffect = new GaussianBlurEffect { Source = _backgroundBitmap, BlurAmount = BlurFactor }; + + _altBackBitmap = + await CanvasBitmap.LoadAsync(sender, ((BitmapImage)BackgroundImageSource).UriSource); + + _altBlurEffect = new GaussianBlurEffect + { + Source = _altBackBitmap, + BlurAmount = BlurFactor + }; #endif } } diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml index 28ca3d1..33002f3 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml @@ -10,88 +10,158 @@ mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + - - - - - - - - + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - + diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml index 921c7dd..b5a8d9e 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml @@ -5,10 +5,10 @@ xmlns:controls="using:Microsoft.Labs.SightsToSee.Controls"> - #D1D3D4 - #545455 + #2DA092 + #FFFFFF - #434A4F + #E6E6E6 #2DA092 #2DA092 #2D6B67 @@ -35,7 +35,7 @@ - + @@ -523,6 +523,223 @@ + + + + + + @@ -699,7 +916,6 @@ - @@ -1786,14 +2002,236 @@ - + + + + + + + 0 720 1200 - + + + 0 diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs index 70dd803..9d61621 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs @@ -10,6 +10,7 @@ public class EatsControlViewModel : ViewModelBase { private Geopoint _centerLocation; private ObservableCollection _eats; + private ObservableCollection _eatsGroups; private bool _isDisplayingSightEats; private bool _isLoadingEats; @@ -27,6 +28,12 @@ public ObservableCollection Eats set { Set(ref _eats, value); } } + public ObservableCollection EatGroups + { + get { return _eatsGroups; } + set { Set(ref _eatsGroups, value); } + } + public Geopoint CenterLocation { get { return _centerLocation; } @@ -43,5 +50,23 @@ public bool IsDisplayingSightEats public Trip Trip { get; set; } public string Title => IsDisplayingSightEats ? $"Here are the nearest restaurants to {Sight.Name}" : $"Here are restaurants in {Trip.Name}"; + + private void BuildEatGroups() + { + + Restaurant r = new Restaurant(); + + var grouped = from eat in Eats + group eat by eat.CulinaryStyle + into grp + orderby grp.Key ascending + select new EatsGroup + { + GroupName = grp.Key, + ListOfEats = grp.ToList() + }; + + EatGroups = new ObservableCollection(grouped.ToList()); + } } } \ No newline at end of file diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml index ca23795..03a69c0 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml @@ -9,6 +9,7 @@ xmlns:viewModels="using:Microsoft.Labs.SightsToSee.ViewModels" xmlns:maps="using:Windows.UI.Xaml.Controls.Maps" xmlns:models="using:Microsoft.Labs.SightsToSee.Library.Models" + xmlns:inkToolbarPreview="using:InkToolbarPreview" x:Name="SightPage" mc:Ignorable="d"> @@ -65,6 +66,22 @@ + + + @@ -78,8 +95,20 @@ - + + + + + + + + + + + + + @@ -90,15 +119,19 @@ + + + - + + @@ -109,17 +142,19 @@ + + + - - + @@ -128,12 +163,11 @@ - - - - + + + @@ -146,7 +180,6 @@ - @@ -158,70 +191,51 @@ - - - - - - - - - - - - - - - - - - + + - - - + + + + Grid.Row="1" + Margin="0,12,0,0"> - + + x:Name="Column0Content"> - + Style="{ThemeResource CaptionTextBlockStyle}" + Text="{x:Bind ViewModel.CurrentSight.LongDescription, Mode=OneWay}" + Margin="0,0,0,36" /> + + + + When are you going? + + + + + + + + @@ -233,62 +247,136 @@ Notes - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + Width="472" + Padding="24,0,0,0"> + + + + + + + + + + + + + + + + + + + + + Grid.Row="0" + Height="448" + Width="448" + VerticalAlignment="Center" + HorizontalAlignment="Left"> - + Stretch="UniformToFill" + x:Name="SightImage"/> + + + + + + + + + Grid.Row="2" + AllowDrop="True" + Drop="{x:Bind ViewModel.SightFile_DropAsync}" + DragOver="{x:Bind ViewModel.SightFile_DragOver}" + ItemsSource="{Binding CurrentSightFiles, Mode=TwoWay}" + ItemContainerStyle="{StaticResource GalleryGridViewItemExpanded}" + SelectedItem="{Binding SelectedSightFile, Mode=TwoWay}" + SelectionMode="Single" + Margin="0,8,-8,0" + SelectionChanged="{x:Bind ViewModel.GalleryItemClicked}"> + MaximumRowsOrColumns="1" /> + Height="68" + Stretch="UniformToFill" + Source="{x:Bind ImageUri, Mode=OneWay}" /> @@ -296,12 +384,12 @@ - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + Flyout="{StaticResource DeleteFlyout}" Foreground="White"> - + + + + + + + + + + + \ No newline at end of file diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml index 9dea2f1..d3a0d98 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml @@ -83,7 +83,7 @@ - + @@ -120,6 +120,15 @@ FontSize="16" Glyph="" /> + + + + + + + - - + + + - + + + + + + + + + + + + + + + + - - - - - + Width="472" + Padding="24,0,0,0"> - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + Grid.Row="0" + Height="448" + Width="448" + VerticalAlignment="Center" + HorizontalAlignment="Left"> + Stretch="UniformToFill" + x:Name="SightImage"/> - + - + @@ -330,25 +355,28 @@ + Grid.Row="2" + AllowDrop="True" + Drop="{x:Bind ViewModel.SightFile_DropAsync}" + DragOver="{x:Bind ViewModel.SightFile_DragOver}" + ItemsSource="{Binding CurrentSightFiles, Mode=TwoWay}" + ItemContainerStyle="{StaticResource GalleryGridViewItemExpanded}" + SelectedItem="{Binding SelectedSightFile, Mode=TwoWay}" + SelectionMode="Single" + Margin="0,8,-8,0" + SelectionChanged="{x:Bind ViewModel.GalleryItemClicked}"> + MaximumRowsOrColumns="1" /> + Height="68" + Stretch="UniformToFill" + Source="{x:Bind ImageUri, Mode=OneWay}" /> @@ -356,12 +384,12 @@ - - - + + + - + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + Flyout="{StaticResource DeleteFlyout}" Foreground="White"> - + @@ -394,7 +489,28 @@ - + + + + + + + \ No newline at end of file diff --git a/Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml b/Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml index 9897b6b..d3a0d98 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml +++ b/Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml @@ -160,46 +160,37 @@ - + - + + - - - + - - - - - - - - - + + @@ -210,58 +201,76 @@ - + + - - - + + + - - - + + + + + + + + + + - + + + + - + + + + - - + + - + + + + - + - + + + diff --git a/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml b/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml index fa11901..8349ea5 100644 --- a/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml +++ b/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml @@ -16,9 +16,8 @@ Source="{x:Bind ViewModel.EatGroups, Mode=OneWay}" IsSourceGrouped="True" ItemsPath="ListOfEats" /> - + - @@ -36,17 +35,6 @@ Height="40" TextTrimming="CharacterEllipsis" Grid.Row="1"/> - @@ -95,17 +83,6 @@ - @@ -184,47 +161,6 @@ - - - - - - - - - From cdf840e25eab27b4751ba9d40c1a0fa5ea4fa8b5 Mon Sep 17 00:00:00 2001 From: Matthias Shapiro Date: Wed, 23 Mar 2016 13:13:58 -0700 Subject: [PATCH 2/5] Changes to Module 2 - End --- .../Models/Restaurant.cs | 9 +- .../Microsoft.Labs.SightsToSee/App.xaml | 2 +- .../Microsoft.Labs.SightsToSee/App.xaml.cs | 2 + .../Assets/Sights2SeeLogo.png | Bin 0 -> 17411 bytes .../Assets/Tile_Logo.png | Bin 0 -> 13105 bytes .../Controls/BlurredBackgroundControl.xaml | 4 + .../Controls/BlurredBackgroundControl.xaml.cs | 112 +++- .../Microsoft.Labs.SightsToSee.csproj | 2 + .../Styles/Styles.xaml | 486 +++++++++++++++++- .../Views/EatsControlViewModel.cs | 36 +- .../Views/SightDetailPage.xaml | 339 +++++++----- .../Views/TripDetailPage.xaml | 79 +-- .../Views/SightDetailPage.xaml | 2 +- 13 files changed, 845 insertions(+), 228 deletions(-) create mode 100644 Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Sights2SeeLogo.png create mode 100644 Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Tile_Logo.png diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs index 1210b03..8522ea2 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs @@ -180,7 +180,7 @@ public int RankInDestination [JsonIgnore] [Ignore] - public Geopoint Location => new Geopoint(new BasicGeoposition {Latitude = Latitude, Longitude = Longitude}); + public Geopoint Location => new Geopoint(new BasicGeoposition { Latitude = Latitude, Longitude = Longitude }); [JsonIgnore] [Ignore] @@ -255,4 +255,11 @@ protected virtual void OnPropertyChanged([CallerMemberName] string propertyName PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } + + public class EatsGroup + { + public string GroupName { get; set; } + public List ListOfEats { get; set; } + } + } \ No newline at end of file diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml index 008f69c..240ffe2 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml @@ -30,7 +30,7 @@ - + diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs index 1507589..0ac0e24 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs @@ -218,6 +218,8 @@ private void SetupTitleBarColors() titleBar.ButtonHoverForegroundColor = titleBarButtonHoverForeground.Color; titleBar.ButtonPressedBackgroundColor = titleBarButtonPressedBackground.Color; titleBar.ButtonPressedForegroundColor = titleBarButtonPressedForeground.Color; + titleBar.InactiveBackgroundColor = titleBarInactiveBackground.Color; + titleBar.InactiveForegroundColor = titleBarInactiveForeground.Color; titleBar.ButtonInactiveBackgroundColor = titleBarButtonInactiveBackground.Color; titleBar.ButtonInactiveForegroundColor = titleBarButtonInactiveForeground.Color; diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Sights2SeeLogo.png b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Sights2SeeLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..a1818693ea43d2717f642c7e38440a852e55f35a GIT binary patch literal 17411 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 N&+Y@eo*B|E{U2aI6Nmr+ literal 0 HcmV?d00001 diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Tile_Logo.png b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Tile_Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b01c181fcedde6985df42f09b9030973e5add20b GIT binary patch literal 13105 zcmYLwc|6nqANUAi<|roQEOIT%k(6UZ36a~}*P6|cLXl!ZAr-l$QLeEt8|5xhVwo^Z zu5>z*3g!I0=JWmiet&p)yq~Yv>-lu=0VS5b37I7Srx;T%%- z7OnYc5{wtsahKCf{`0~tnbW*q?wh@>DAIFdunUvVX&zh3L3mb^{ECxPzQR%tKR812 z)Dym?sA%tF*mpfjaA_s87}A;0bwNEGHC&u(F^ZN_rHP2WRzUGE*;{vCs>)@f*N zE`XF`iX@tx{#}Uf`ZKB5@^;cIs7o;$lJjM^OuPBQbNQ2aeAnr`+Q$;V7e-iH$E%-!z~9DeIXq%DLM-7@7#{)7$gmx9B>DC~=Xcy{#El@{7%5(hBXV0Y zS9D#*`?sE3my?cO^T6yHUSD{`N|VEINHH8qE3_L1+0?CP6JaNcS_^%nYt_QGAii$5l=I$W4HYh7`dZ*9W}YNF$dl z)b0f)3$2eVs;#W(k0xqFM}zH0lg|#tp+98uqzq>#s6~l3er(y7GB+96b^8emtoN5A zImueb$5c6x-17o?)OWq)gNUQ~@>?bUCafuSGnNRLi4i`2~bL;sjl zEL6b=LC^AMtM*9RivdE-5<@IHyfZ>1MCrm20?}+)!Nm;sQ`eruZ`DVV3b)DO=R%a9 z4(bpdsvIftzzHi=;t*ZIf6jlV98m?llPWzIgr9n&i{{+zKASKIzOPu7@fOScYw%}{ zs>4hE2ywvRp~C&wlwtJ&kTpd8?JGK0eMOMaD1@$9OOu3Zj)%+wXB zG0ftz*~{m~CtNO69`mAi9@lk%6JFEZzWf;7jME2L+7%+bKg9JE zU*$q@sdGSu*_fMsANO|zh6)zNa$6k;?Yx?NI^&Lw2vymoswG*+B{G-a+kC@k^}}04GmTFDs`zewbvduv>vLBmt0p;- zDW11m+o{?*`ampW_EB8{L`A zCyfcjPF06mi0*LrLIg;#m&GX#K_#SGx z)BKOEdx4Oga_0<>&)f*o9$ZZ!rt964WNyvCi;oS)QpGb8ei7iEW5cPZGqm_QN)hj@ zHhi=ubi@eo0LqlKcfI-pajG(71%2(P>rX*Oc8wVHbK7LK<;yQIXf*P8L%6Il}gmUuCDy zL~|jc)O2NAj4FINKB)%34SDiHsf-u(=Twlff$aVW@>{K5PjFHEf;vpt{SJ2WV2ry`GC9rs}$kb=I{#w!J#J&6m&_CNzeN?o z)UzTux!y^}=9Lu2*FM<*T&Q*Ww6gnBLvnADPg}brtph^89&kETAjvvxPo7Dn%e(*F)0 zmKNPx-}rdC;EtY>D#`@Dxil_t2K8KI7{wW02Vdyu$=#YKp=@o^YF=j%X+`$} zs@2g5R?=d?#_vij(!lj)y%2%fIMNl@`sO*ChUJ=tc%lv^DgBVZ_qzo<)Xp*tZvVXp zbj;jiWAj17zyHAV9U7k2gx~meu$V~Wx7qjJxevX?#^~YGlW~i{wD#qg^!pND__k#S zX+X;B^v)#$^WGIxJ>|Ss0Nv+6BObnJvw1U6m};W_VGJ+%?fHkXBtYt;v5d~8q1|MI z?vIhb?nSR_mIJJfolDVNWPN-{*Nh1~_twhvdTtw!Bcfa@$Y5gP5;ytnwWAf^?q?gR zPw9Z^4_#+62u>dJ8|Ttm2U1IVz2Zsm!3x&H8JqxWRoCyv`=bYq`VCJyw$IrP5!QNX zs}oJ!WQy6{zkVig3ALgfk`u|N?E>a#SSX4aaKC8}i>>E;xRWl)qs)uaH2=_+Zp+4Qvj{6YjK96Bv_d| zNv>E4yW)_NqyJH(Gdxil$%p!PwRb(6kU0o!l{2~JLbfC|=(8~_P4o{6$T+w&_@AvW zgOveb(r2-yfSaWE% zz;U~gx${GWMg(;=3|W~}{NdST^n!fLTN!TW5wGkB z%%Ud&XIcP=gyn!Pw0JOP<9?`^mOBP6bP!40qD!K_d`Qcld#ub6Ho=YXVxo@ed8ZE_ zTX;KZLO@Y9iUAWQy~i<~&(EwX4yp6@8#X(P;OvGtzp$cX>MzKD*-sUW-hSZ-6zDuP z2jG;}uU{ppGMFy>L}cj0J!~T~#xDL7;zbRJ+`T4ag-Q&444^=NIk?5mQT*ozehmGB zwxOeUB^|6o`!ZYFR?-VMl~q zNiV$X>mI6lY*PPbuxcIK_G1sX?SJ=q_reM2luyjrV79Cts)Jd=RKr55fKSU7b!xbj z#Qj89>Y6))RS=zD+Y!yjT(Gfw&Nez?-D5gGfywhqp<#Ch79MnJzKrJZb8g)%dml#Y zWqieJ=*;?l>c@UMV#2h>M?-XjwdJW5@%)u>zF1V#xT#mX)4_rDbg-~15+LmOoBB7| zQh@3@-8wixa`K929_Wq`tZ^-A5HflMNX1?KB7($ekAW+HRUp-@n@xfDhzCAVm>N7? zv&x@p-MypQKl-MB5SY#`zor%&@1V0GY^FLQ$_nwmtOjDhCA)oX;`}#afN~BUebqr= zzEy~06^M3K|6!{@bH0A?G0Eu>Aqxw)GXK7V?{ZYQwv88o+4>}pJHsJr-PRGhul_L| zPH>vL&jyJubXX>|nFDcXWk*q}on#5jxWO5%WTJ4tq5I(t9kBhe>q@;FkTpXt@?Bs` zIf>$`SMKy31mt@^rSEgxjR3GhNmkNQ?n*$mB!=Eh(wQTc zZyHm#3t~`op=;Bl4t>Q}*b-T$p#}s{_vKa_yBN^ZcG3$S!j6~OmUGOymZU=$Vy(No zeY=wfc!xQGgJGeR>%>U*a9zCUQRIvbWFKem5re?9Wdl}fnDK{IbV6%I1^Zt7@HaO! z(gN9Y@dU$2XXm_X?x&VghB~wfPC9; z3Vpj#@uG5U3^QOiE9jT)52TvRqYn!xlaL{%VXEyv$82eg^|f6C7Q4yuPv!r3TJM;F z6{6BgAF~j-NnFM5Tq^cGsu=>P-RU&fd+{t*k~|4z^X!jtzN6r$eN-7?s+<&!CiIxJ ztOKysz1{Vko9sa!nPwq%!Ro{j36vxB3?7~PrueS~H<^71J{@EwRXeQYInrX!`Deu+ z=SHMV$s66UoyIv0aVq6`D2Y(j2}vgnymkQkdtF71ZW9AUPJXKBTJgD6A_%U+Q}E8a zCor8RlreX;H%@oJi3$aJvCH@AYE-`d0Xb(l%u89hR#NQ-Bz-1JB9fs$wPwu3;@Kx; zZ}-s|0aUbI%=%B`+glepCw&1SZ;m#t?W6v%fxj^2`)}I#g%|NL0;tGmy0$m>()C=w z$yYd3N#HcI4w3WN-#BOAOO~0^$2J(pki|Wcfzs1^CqBBTvUX&lp9=9Kf1LX#f zy~=0lfIjz)fDn%Ii66Q%y(ckdf%wto*pDaOmT*SE z`Fto=qHQaSeLJ_8vi|p-bV2RL=59daV37Sn2b~LnH!U|^*zv1l|4nM@HE<|eS@F?h z6NZ+0cTx(5TJJsXP_n|lHfoCI>-vey{o1XU_QY*PPly8N-}z;1UW-NyZ#tet!T<>) z7jz%Q=!B-6ra^@kVdEPcx7;UjrR(nB6D#7Fx~#*35lDA zisV6sFp?jhZ^*q+p7q}}H`Ld|OLH((M0`?Xpse7I5FUpw?rEDK(u_u7GFT9FIa>ig z=74=lH`xnC3Et<~Y8Q3Cs9AwU-eG1YF!xd;XpXI~J<+~Q6{3QcK>d5ED?v(_aUa1rkyGo8f$rfOe}U$te~ef$!u|+q zCLib?=sspQM9>c+71QV&90&fl&S%UVI5TZB#M^He`eHwFR#KFC+65E1N zCA!p_ZsY?c>#8o4`O%-9sC#r=w{9a$Yb&G2xfvsCnC?)YXy!QQoWFF}np+e%w5xP@ zP4feGBI^4ot#jxrkN*|_^i24g9*$CbUMKNL2WDG^2iV{*SKF}nW*XKsnl3wD85OPi zyR}UUjP)fq%3Y@sX=*B)tE0bjCom4Q*`ElnK_^i%H%K4`NYIbYQ2U1bI?tZkn2`j8 zBl%b7K$2jt=fBNr68GoE7y~4(?B8q)$Sp{y@GCDwtJX%>t`0ytx31saPYu@cY7t-P z*k8#52LGP38$vB?Zd;aeBwrpYN8+Njvgpo>X6rv&tU|O&sLv@YMd7H*8*`3BgkS0n z64)n1GnvAkziurgr+-u-XZQsWKY2 zp8l^P%8^XjtWa_Jy}6yz8f1JVD|jQO^#}%U^G>h#Jc!x?{==|{-q`vRu*>D{zsntP zp<{`p@h{4j!1}+M$FG)YNVWGac&cHJ&uDtx_+oB)SNaHd!-n+Vkd3QAoUdw1S zdBy6TO=JZ&6Y;gouWWg1yIDiZ_9h<3jd;EIY0l-#v7mgvsBwKnl_<5UPxZB0!cAaJM-6cN z=D)s!3-39r(T=fp>#EAExzkG!M}VOae)AO_dx&deUIjdH>kHwkiaAy2MoH|jh|k<3 zote8H?>`n;ymON7%%EQ(Nu-n(^S^eV^L3{?TMZf`Ogh7(qB(K_6L+e+bsDH#ZbcaFr%iGR<+Poivfsj^Rq|W3+Rn( z^!}sLEkEy16F(oB3mZ+4BFe1iFTs2&#UliEldt|huig~8YcK#gGMjJ}St-a$g1m%l z38LT~+1BgA#v{IsPu&Eniyd_rOk+WTr%dF6pJzKMX+_?+#W!xFIxkV86hR`!@Y+_l zxeXO$(`@j%`NA2_(v+Dw;|(tx4WnYD=7rP4Oz{ z#m2xC(*D33-H`ItiS5+DoC*KMBQTJ3aZQE3H!R?>k#?;={mPCi52J$hpe=d|lh}awBqP!@pcaiC3LLAuoKK94ClQHFh5{;B;ZiLc&Qz-<( zg;1J_1W|x7`JE#4BY@7jXuZqhiB)wiQ^RmTcu}9egPJlMa6HYL;rp`nlL5q*EKR@C zugykYX3d_HI%)sZ$an~D9Y^f^bn@Y!uN>Hwrz)UwTJY!?H^g!MlD!<}h{U7t1r8EC z-_ea1)Z*m(o~=NJCbzlC-A$ry!rH~|-ZH*aE zS_?=JwSD61`%ooN{5Ulh+7<{Yf8UMXXbjB3Gky*Fj8b77v!XrmTh{N779`9S>NjHy zlS=`07v8L4wbF8vbD!z$r#evImf(5i{Ex)ws*`Wl%g2IxQ9ScFuuVL$x&l#3)XdrX zSzXo5+<(gHfC%a0s6B3auLcs}t*aelkgH9D6V-R?Ip&Vrr<=*0>p;#?rNS;2s(i{T#O*o|aC`NO;DF{H zv6QHJ$+bCqy52ylkxe|!StGA--f-re&~C)r^#B9+_PJZJ%ctpo{j#ZgZAzFs^T%$I zvHLHPd$jgb5A%6;-m3R`fVgC&eUiYuvGT&cU?jr7A#h(ev^&H9-eb#gFM-Kh3nh+e z7x?*H+cf;ex&yf%uQ#g1s&59B5Cf#Gj-S24(ww;4He&~0H;Z*!57s&dF8BAHnS`vj zNQpw#gZ>rhOchq*x>d)SRv&&jx35n8sIPQOk-~HTs%iFg)%DHeA(Fx0Pgv+c!y>Mi z5W`u`qSM`+CRtdg=UYW8&q`cQt>>3=P$HsAh(qI_-VEDUq?-LCxd!MDramm4&T3sq z;qkvAYpKSK$j|z+_`SEf2~-DDhsK`ql@(LZnFOOv|yK%*E}=-)6g# zLw(4^aOQ^p+*hr(?s9ad^%z4OR^B-Z0xF5$86}vWPuGmA^R50Z_KjJ^Ye?GO*1~a< zzo{M0eLR24O=;Nr?708i>}aYDs2WjdsI>A}N-M_=sds*`(Lo5?EgOxLS{hYt%R6NffGX59VXn9*5QBCcioMvu1f zMX$niqGOi(F%?JpudP3ECr5~)^w`m%s;G%atVFexmQN6LXod^QK z7?1{tiS521vod_)XbX`3ko;Hc%ZE1c&N|SyR4Qu|4@z|dhRV^1;d)>I(lT1yYOULj zbwu~y_z214n1qxspS( z%iXeT=nn@;t~*N{#a~XUVqArVz)fYS6EH97Ge`G6wnb0GL{3E7$98FCyz5EGMD4E^!z-jFKuv7hJ=C6K9owj3%|MSbN) zOu>PbZ%sMU2~pQ4`@mA}rmMSf{kqMCSoq*fmPFtKq1Tc012y~rd)qh(jWh_(y$_UH zJ62H-sY%C3dFsNP!6pVEFF5hC`Va=8gy--M=-2(=EBVxxPFPDV3E%fF&vJ@~l{joq zCo~pFefE;n!L(d3jFY<7CF%~!HsyV1MlplLfQRtV$9=hk%Ctj(LJR-m43N5~edI_q z8~f=q5NhU7x789DJDW<~9NKucEz9Z1&~5&5#g5J?j}t)lTt^w79t$-FBGC?0LfJ5q z!%=B798_5K@j_sVx;-F~ssni{JmU@@2fiZ>aJSxMbf4*?=Xbp*ij}zQH7NBBVmw?i zEud}^Flcx)Dp1OE-Mli7d)f8ef#A8Cexg`P+m~J~hq>RSQ^_;nvcYO+GyjE7Ma45q z(C(Ujw&V*|aag#+yh(n75}f+-#1{$DWunBobvytDjZ0t-Am>g|&Ox!C0!;yfqha}R zN;1@--;nV4x(;*#s|`b5e^Brbw)NUjbJA7}&z>}%Na-_=XL^;s=pHhbrow+VQ3jI7BhHbhFshU98nXHA2> z7NJsw*i{HXLhS$hcK^S)#!Fd=GrTC|y6{_vOJlY=(2>hyq3%e_|Gs|$EfHAwM!eor zVo40|=Zfd}eV`Hp5H-MFi&0iRk| z>~UR~`ab7fc%kf!&~ob>r`bs6EFSR6;YZg7RuTfLj>BIhnkp4L!4t`^r@D@Od2Sail z_4^;+X3ZfFjW_4+;5+m*ophi%E)ls74E;g}n%trPp$yCSpnxNEZ@yrTXY>l`<#1IV z_vLpbM>GhJE;IPyou-D^6Ko-Vv+@_&&?aP=E!|7PNXa~%*Lh@3a&4y(b!uV5Uk`0` zxQPmFisL)-()yBz*I?PwIp$8eml^s$){u*4W1*I2)yGJ#eb49HwJC3(#5<|0pO}$k zmjl^cBtEp*i{dgO6U98OnOLOPe^C7%ym@YUAQyQcGv=P@IV@JHD~W`KGoF7yKbVhq zx`F^DfXTuC5VT!s(Y>?Hpc0s41o)qGR9Lp^n(Zbcd;h*Qt1C@Uh~X-*2p^ucnOv3Y zJiRD~y4HpCUF1jgqfc^(ViT7=ijD#7=0oRzgg|{1%}9QI$mV%H1FA!V8Cd}?b;{n~ zY`C1`$ly0R2MClMe6O2Ymh1pD5|(dPie|}D@5}WyzSF!!qr&+KS^GuSbaONXs};@^Y1wKo~w`_3=(X4PaQs2L9q zqv`q>v*PA&jU9sqnX?t>%`{M8MuXTgfWe>kIqrL95q`w64(<_5q)S%!%^Df@2z}Ta zc(#ec=^Rr`7zPJTplJ}DHcN2&YXRyhfw$|Y-MQs0fhN@(T>a2!X{rOwI|^iwCfu?l zlB@BB(xECq#sdIF6;@5@bVUdP=xXQOp}H;kHDUJbUswz{0dJ0ZV7uN` zH{ycaOMejSTE3{Z(Shz;@yY8y{4+)frBZ=?aqz(e+cNa;%X@ww5E^VCit+tPUFA!) z{?3+~_ek#GW2_VV6wStP`q@YAY#yHY4ZQbErbae9d#j%fW*^Cpi9oHJL>#}Of8!zHt8^F1@G!WKlre-Sq~ol?X!wj%vSw+l-A+s?e@gX54szV z!9^h89;{`mv3wk3b~Faq-3#-R_umFfZPkOv6p3jXc#Ftb-$HIUQEsaQy_&T7Tn}r@ zj|#O_XF$KQsu*s^ug%bIt5i)+s{Wq}#GgLkhkzp~~>-u_8>wPeO{DL8lM zN(%Ak@^B3PT8`WW8Ei?R|IXSTNXL-hbm~L7&Nq*_hqVnLBqA`?YRA6`sF@es6Nqc4wkX@Zxd` zff=+P*A=j6s!Ul+X{8jkGu7t*xkfqA+ET2G-lH7tT=&082_?bCWqM4}eS?sY> zSC^iw9?Dc9v%v*c+*AQe0n~KnlY}!KXK`#VHGY`3`pdUh{7M{ExB?W(+3pU!adz0n zJAErO5v^DDu)ueWsGSBLUC=e8gn&v^+)e%|PJi|-#&Y^BR_Z!C{-S>@jH!AhuIu&F zEP8Z33%t{^jf(wF3ts5lpEzg06#`T%*d#2Yf)|HUN?P0hz0{bRqwCGZSjC+U+#%#$ z{pzeQ-8obQ^a!S}9_3c~-vaDnzgeX`D4P@;S)pz{m{}D4)x?em0493pV$5-`Ztj?4 zqrc+9HcY@9uJ&oAq^xiHx4^GPH{P3c z1MCjiMQc1Y$Fn`o^#@epZfCw7DGY=~3mIx)G7)Pp4<#UuI-F(edse{p&{%Y+;}^A- zsnZ$Ds83}#+2?BTyKnR&`Q5cn@$o1`n7zr)RQvHpbtFzM>Xn8f;?yr;e8-8SH(sXW&isnF86!sPnthoC_KFwm2*GJygGQn`1isN=5tZHzv%ZxBMGI&F2( zvebkjS)a4t(E5MSsLM%a8lbrdrwIBWSNrj>8no-+L?hD5G{V?-3(|lz{?CKK%5iC5HKFJgj=udbx^clS=EB>cs5wEm z$-VVCMFs2wX>0Rlt?-^A2LIrYNN&l0AVZsd{3t&W8=L)L8ik!FfHEqbpl`yg{lsUA z#92+8Ej;DlXqW-|JwU*nRAs-=0-k4sJmK{@#qK*;Prr#8b>Ky1c#rKamH*1t!2`Ok zAc1)*e9TZUHqYWMjcslLP4|LkKo852pwX2$i|!rRXNq$cQD?a(;4VT*o}FXBA4pT? zGeJ+wcyUc9*C+M~CQwYXS}0uP+yrvA)h@pWer$!lT}}sl&{^Nn&FMkw?O#6c%mgLm z)%pP-<=OZVD*eY&kkeDPK$SK8r7d+2icxPO_D(}F?% ze5hC{Odw`H%uYZ+qUKvxJQIkDK^(F7GR1AA&-Fc~KU2FZDH1z6%k&Qv=SOv3Etgn@ zx+mu0VTvOn=B&{!+Jp8zOf9<#oT9Hi@s+ zNklV4-!}5*OSo~hDYIL9L>9Ck3XG4Zo=$gCFrGYB`SUdW${4WaPu6N8L?bFcH-dlp zQlRbho_YvcoKj3!76&pcwu;EuodauXhN2u4boFA2B~E0_!rPy8-dPFK^0d;G6Qh>D z-4$5Vtpdr|n}1hd7{w^I8+W}8f4eKyreSK_HGu#`EXMxS@OS;0M(niy__t86AnJt! zBsyE;9~Vb=!6J$UmVy7<4`M19l6Krnv_m+gQ$IH z`bt}pTzFAICeGt5g-{N6K9}qaRX73e2OlD@TkW!aer$l440??H#MgtRgS+q+;n4Ea zAJmP4y88XS)IqnQTtuc(PC+j31C4jeCky9)0FoYb`u-~qUa%&)8DIU#b5#{aa)CD; zz#P$vX0?CbCrf+~8(s_B0rg9!W9j#b)Yp(*$tRt7TnLdGg z6)@)=rlOum{MSDl*mai+kb1V>00!?}Jjc4-{;BiM4=YLa%SIufU$s1e`*-`3T~7P+ zf1jl=q><1#%PGz-c+E+RTSV?-BiTH-XK=2=-tio2OwUfqsz~eI1bEfFv6i7yD94YBt6!|45^mUSchRTD3_|N|#&SRUL*dDmGlq?2+(wu#FC`p%K;Tq@ zT7Am1N{O*__<>D+rzKBtOGUo-KEY!H1sF$XQK_|3F;#PR3%>AaRgzQfgla_K@E-6( zfn>3vr!Dxul=>8leV#b6qFDz!8YdE}D(HEBp|MWl#9025sm`c)$L0&5CA>wu9L47Z z`ur=os;85)rDva?Z#dADEXIp!SL$?4jebAnLj0=*AFhlVdfddUy|Q^(a)0FB8~T>Q zTnKLyh0yTK>W43#?-!}EVm(S`sTCYZ=(p2<8(Uyr4JF9v?{62IzJJf0p8Mq^MKTm7 z88bM4QCg&<$As%2OC!01ekFeW>wZGP%B*De+WW0t;71PcO{AI?Zgx(1daPfJUhnhk zD?yY79_+Xz_M!r}{xEPml1nYx2^eGOP+^hLfoo=BK{zeL_leZQ-lu4#gZ2K`j1R*S z%6Tn~a9y3+#Y zU-ECye`K^>3RXS?b1u563@D{A5-6GTD0u<$a0zwox*h6DyTj%U4jxEkv8}Y^qiY@D Q=PnQnvva4Ons^ib59|UF$p8QV literal 0 HcmV?d00001 diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml index 4df7261..fdf9b7d 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml @@ -11,8 +11,12 @@ d:DesignWidth="400"> + + + + { + control.BlurredBackImage.Invalidate(); + }; fadeOut.Begin(); fadeOut.Completed += (sender, o) => { @@ -141,30 +167,61 @@ private void BlurredImage_Draw(CanvasControl sender, CanvasDrawEventArgs args) var imageHeight = _backgroundBitmap.Bounds.Height; var imageWidth = _backgroundBitmap.Bounds.Width; - var scale = Math.Min(BlurredImage.ActualWidth/imageWidth, BlurredImage.ActualHeight/imageHeight); + var scale = Math.Min(BlurredImage.ActualWidth / imageWidth, BlurredImage.ActualHeight / imageHeight); double xOffset = 0, yOffset = 0; - if (Math.Abs(imageWidth*scale - BlurredImage.ActualWidth) < 1) + if (Math.Abs(imageWidth * scale - BlurredImage.ActualWidth) < 1) { // Basically the same width, we need to scale up for the height to fit - var newScale = BlurredImage.ActualHeight/(imageHeight*scale); + var newScale = BlurredImage.ActualHeight / (imageHeight * scale); scale *= newScale; } else { - var newScale = BlurredImage.ActualWidth/(imageWidth*scale); + var newScale = BlurredImage.ActualWidth / (imageWidth * scale); scale *= newScale; } - yOffset = (BlurredImage.ActualHeight - imageHeight*scale)/2.0; - xOffset = (BlurredImage.ActualWidth - imageWidth*scale)/2.0; + yOffset = (BlurredImage.ActualHeight - imageHeight * scale) / 2.0; + xOffset = (BlurredImage.ActualWidth - imageWidth * scale) / 2.0; args.DrawingSession.DrawImage(_blurEffect, - new Rect(xOffset, yOffset, imageWidth*scale, imageHeight*scale), + new Rect(xOffset, yOffset, imageWidth * scale, imageHeight * scale), _backgroundBitmap.Bounds); } } + private void AltBlurredImage_Draw(CanvasControl sender, CanvasDrawEventArgs args) + { + if (_altBackBitmap != null) + { + var imageHeight = _altBackBitmap.Bounds.Height; + var imageWidth = _altBackBitmap.Bounds.Width; + + var scale = Math.Min(BlurredImage.ActualWidth / imageWidth, BlurredImage.ActualHeight / imageHeight); + + double xOffset = 0, yOffset = 0; + if (Math.Abs(imageWidth * scale - BlurredImage.ActualWidth) < 1) + { + // Basically the same width, we need to scale up for the height to fit + var newScale = BlurredImage.ActualHeight / (imageHeight * scale); + scale *= newScale; + } + else + { + var newScale = BlurredImage.ActualWidth / (imageWidth * scale); + scale *= newScale; + } + + yOffset = (BlurredImage.ActualHeight - imageHeight * scale) / 2.0; + xOffset = (BlurredImage.ActualWidth - imageWidth * scale) / 2.0; + + args.DrawingSession.DrawImage(_blurEffect, + new Rect(xOffset, yOffset, imageWidth * scale, imageHeight * scale), + _altBackBitmap.Bounds); + } + } + private void BlurredImage_CreateResources(CanvasControl sender, CanvasCreateResourcesEventArgs args) { args.TrackAsyncAction(CreateResourcesAsync(sender).AsAsyncAction()); @@ -177,12 +234,21 @@ private async Task CreateResourcesAsync(CanvasControl sender) { #if !EFCOREHACK _backgroundBitmap = - await CanvasBitmap.LoadAsync(sender, ((BitmapImage) BackgroundImageSource).UriSource); + await CanvasBitmap.LoadAsync(sender, ((BitmapImage)BackgroundImageSource).UriSource); _blurEffect = new GaussianBlurEffect { Source = _backgroundBitmap, BlurAmount = BlurFactor }; + + _altBackBitmap = + await CanvasBitmap.LoadAsync(sender, ((BitmapImage)BackgroundImageSource).UriSource); + + _altBlurEffect = new GaussianBlurEffect + { + Source = _altBackBitmap, + BlurAmount = BlurFactor + }; #endif } } diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.csproj b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.csproj index 2bf4154..c1fac28 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.csproj +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.csproj @@ -137,6 +137,8 @@ + + diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml index 921c7dd..b5a8d9e 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml @@ -5,10 +5,10 @@ xmlns:controls="using:Microsoft.Labs.SightsToSee.Controls"> - #D1D3D4 - #545455 + #2DA092 + #FFFFFF - #434A4F + #E6E6E6 #2DA092 #2DA092 #2D6B67 @@ -35,7 +35,7 @@ - + @@ -523,6 +523,223 @@ + + + + + + @@ -699,7 +916,6 @@ - @@ -1786,14 +2002,236 @@ - + + + + + + + 0 720 1200 - + + + 0 diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs index 70dd803..cdc0a80 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs @@ -1,8 +1,10 @@ using System.Collections.ObjectModel; using Windows.Devices.Geolocation; +using System.Linq; using Microsoft.Labs.SightsToSee.Library.Models; using Microsoft.Labs.SightsToSee.Models; using Microsoft.Labs.SightsToSee.Mvvm; +using System.Collections.Generic; namespace Microsoft.Labs.SightsToSee.Views { @@ -10,6 +12,7 @@ public class EatsControlViewModel : ViewModelBase { private Geopoint _centerLocation; private ObservableCollection _eats; + private ObservableCollection _eatsGroups; private bool _isDisplayingSightEats; private bool _isLoadingEats; @@ -24,7 +27,17 @@ public bool IsLoadingEats public ObservableCollection Eats { get { return _eats; } - set { Set(ref _eats, value); } + set + { + Set(ref _eats, value); + BuildEatGroups(); + } + } + + public ObservableCollection EatGroups + { + get { return _eatsGroups; } + set { Set(ref _eatsGroups, value); } } public Geopoint CenterLocation @@ -43,5 +56,24 @@ public bool IsDisplayingSightEats public Trip Trip { get; set; } public string Title => IsDisplayingSightEats ? $"Here are the nearest restaurants to {Sight.Name}" : $"Here are restaurants in {Trip.Name}"; + + private void BuildEatGroups() + { + + Restaurant r = new Restaurant(); + + var grouped = from eat in Eats + group eat by eat.CulinaryStyle + into grp + orderby grp.Key ascending + select new EatsGroup + { + GroupName = grp.Key, + ListOfEats = grp.ToList() + }; + + EatGroups = new ObservableCollection(grouped.ToList()); + } } -} \ No newline at end of file +} + diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml index e1753f3..8efac54 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml @@ -95,8 +95,20 @@ - + + + + + + + + + + + + + @@ -107,16 +119,19 @@ + - + + - + + @@ -127,17 +142,19 @@ + + + - - + @@ -146,12 +163,11 @@ - - - - + + + @@ -164,7 +180,6 @@ - @@ -176,73 +191,49 @@ - - - - - - - - - - - - - - - - - - + + - - - + + + + Grid.Row="1" + Margin="0,12,0,0"> - + + x:Name="Column0Content"> - - - - + Style="{ThemeResource CaptionTextBlockStyle}" + Text="{x:Bind ViewModel.CurrentSight.LongDescription, Mode=OneWay}" + Margin="0,0,0,36" /> + + + + When are you going? + + + + + + @@ -256,19 +247,16 @@ Notes - - - + AutoPopulate="None" + TargetInkCanvas="{x:Bind NotesInkCanvas}" + Visibility="{x:Bind ViewModel.IsNotesInking, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}" + EraserClearAllInvoked="EraserClearAll"> @@ -285,21 +273,21 @@ - - - - + + + + - + Width="472" + Padding="24,0,0,0"> - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + Grid.Row="0" + Height="448" + Width="448" + VerticalAlignment="Center" + HorizontalAlignment="Left"> + Stretch="UniformToFill" + x:Name="SightImage"/> - + - + @@ -365,25 +355,28 @@ + Grid.Row="2" + AllowDrop="True" + Drop="{x:Bind ViewModel.SightFile_DropAsync}" + DragOver="{x:Bind ViewModel.SightFile_DragOver}" + ItemsSource="{Binding CurrentSightFiles, Mode=TwoWay}" + ItemContainerStyle="{StaticResource GalleryGridViewItemExpanded}" + SelectedItem="{Binding SelectedSightFile, Mode=TwoWay}" + SelectionMode="Single" + Margin="0,8,-8,0" + SelectionChanged="{x:Bind ViewModel.GalleryItemClicked}"> + MaximumRowsOrColumns="1" /> + Height="68" + Stretch="UniformToFill" + Source="{x:Bind ImageUri, Mode=OneWay}" /> @@ -391,12 +384,12 @@ - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + Flyout="{StaticResource DeleteFlyout}" Foreground="White"> - + @@ -429,7 +489,6 @@ - - + - + + - - - + - - - - - - - - - + + @@ -210,58 +201,76 @@ - + + - - - + + + - - - + + + + + + + + + + - + + + + - + + + + - - + + - + + + + - + - + + + diff --git a/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml b/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml index 5ab59e2..bf67362 100644 --- a/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml +++ b/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml @@ -164,7 +164,7 @@ - + From 462af49983173b31970df1ab97be16760653a9a9 Mon Sep 17 00:00:00 2001 From: Matthias Shapiro Date: Wed, 23 Mar 2016 14:52:47 -0700 Subject: [PATCH 3/5] Revert "Updates to Module 1 - End, Module 2 - Begin projects" This reverts commit 75f309921cad136d45605addb27756dd73514b31. --- .../Models/Restaurant.cs | 6 - .../Microsoft.Labs.SightsToSee/App.xaml | 2 +- .../Microsoft.Labs.SightsToSee/App.xaml.cs | 2 - .../Assets/Images/Sights2SeeLogo.png | Bin 17411 -> 0 bytes .../Controls/BlurredBackgroundControl.xaml | 4 - .../Controls/BlurredBackgroundControl.xaml.cs | 112 +--- .../Controls/EatsControl.xaml | 186 +++---- .../Microsoft.Labs.SightsToSee.csproj | 1 - .../Styles/Styles.xaml | 486 +----------------- .../Views/EatsControlViewModel.cs | 25 - .../Views/SightDetailPage.xaml | 382 ++++---------- .../Views/TripDetailPage.xaml | 105 ++-- .../Models/Restaurant.cs | 9 +- .../Microsoft.Labs.SightsToSee/App.xaml | 2 +- .../Microsoft.Labs.SightsToSee/App.xaml.cs | 2 - .../Assets/Sights2SeeLogo.png | Bin 17411 -> 0 bytes .../Assets/Tile_Logo.png | Bin 13105 -> 0 bytes .../Controls/BlurredBackgroundControl.xaml | 6 +- .../Controls/BlurredBackgroundControl.xaml.cs | 112 +--- .../Controls/EatsControl.xaml | 186 +++---- .../Microsoft.Labs.SightsToSee.csproj | 2 - .../Styles/Styles.xaml | 486 +----------------- .../Views/EatsControlViewModel.cs | 33 +- .../Views/SightDetailPage.xaml | 390 +++++--------- .../Views/TripDetailPage.xaml | 79 ++- .../Controls/EatsControl.xaml | 66 ++- 26 files changed, 605 insertions(+), 2079 deletions(-) delete mode 100644 Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Images/Sights2SeeLogo.png delete mode 100644 Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Sights2SeeLogo.png delete mode 100644 Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Tile_Logo.png diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs index b9aa91d..1210b03 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs @@ -255,10 +255,4 @@ protected virtual void OnPropertyChanged([CallerMemberName] string propertyName PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } - - public class EatsGroup - { - public string GroupName { get; set; } - public List ListOfEats { get; set; } - } } \ No newline at end of file diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml index 240ffe2..008f69c 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml @@ -30,7 +30,7 @@ - + diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs index f2b786a..111ac1e 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs @@ -154,8 +154,6 @@ private void SetupTitleBarColors() titleBar.ButtonHoverForegroundColor = titleBarButtonHoverForeground.Color; titleBar.ButtonPressedBackgroundColor = titleBarButtonPressedBackground.Color; titleBar.ButtonPressedForegroundColor = titleBarButtonPressedForeground.Color; - titleBar.InactiveBackgroundColor = titleBarInactiveBackground.Color; - titleBar.InactiveForegroundColor = titleBarInactiveForeground.Color; titleBar.ButtonInactiveBackgroundColor = titleBarButtonInactiveBackground.Color; titleBar.ButtonInactiveForegroundColor = titleBarButtonInactiveForeground.Color; diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Images/Sights2SeeLogo.png b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Images/Sights2SeeLogo.png deleted file mode 100644 index a1818693ea43d2717f642c7e38440a852e55f35a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17411 zcmZ{Mc|6oz^ze6Pm@s3BFsP77mdqg0!bEvgDs8gGFk_2EtKG<2riT_=R8*wWVy7%) z8$yT{TO_2CY}vQ>e5an@?|uJx|9C#nINy8Ee$Kt;+^h7f zI5PSlA08mfd|@*1KYmXW%d-eV5JUgNAh(i90F*kn+v41j(@y6u+MjVmb}~*oILhrg zW$)~G*wLQh&kyQJi_CpAFLCh^^ERrk-SQHp?pPyhU0UY@(h{4t=(%7ED;&Iv`54JH+FB3 z^%*xa`+&uArO;ag=5`aUf?K2F_^3<_t`SbmqJi*G7Nya|w*y=80q?4!MX*32Wj zMZ5Qj+ieU6FE`9?>3LSTl4!nZ#kbAcSV3U%CdtBAI3!uZg7%G?6T>U5;Ec|uxqJ^3 zSFn$X?yhaWl+=h|@U#WCs8y`3OJe>yv%;`aD!mIOj^|Tf46e2y-E@AGxAkN`O%Fz< zoNw)&{~i~|dpN&Y(j`|5@M){$=FVfIa@5Rr+_p^_qwWV;eyp}~vNEnr@$kLxG*LkW zR*ng)m&8?Xu4yLLKYj1SDUyOwD&kfZZWULUWQ7J$M~syVf1mxUFbUcX^4anPDVXFK zF5zs&wAa(Z@sX*y%`JW}7<`*NgmD~kY=eJ&h!%)lOUX6;9TvAy6}yU&rO}{fEd+?e z1vede`hF#4(28l{JLp&u*?w;T;UUrPH)|$_#f_eM#;a^iQcY^AV6D`G;rc?GN>*mM zKEbSi{IRa^x)cuygO`@J%2lU|yE;;tD`_eA<-0qv@50RSJfxKLRK?X5J)c_gk;!*% zj++Y0i2&>4#uVU<7qKwx`(l5CdL%4@5pL|%eHhgBK+1}B z8PnD1Ed??;lq-hDw#QK@%r~KOT7y%XFz?Kz`lAvy>6v)8nM96UUosKKg?|3xPoU~2 z-vEh~bqgEvlTTx6tw|e`#2COo2Xq@U+q>C*HzFV|G;8OgH!6%J$`vAfnn3Up0l9?Y z`2G2d3WJ$jbP436dSXNvV9v)PHcHu_vpY{BM_amGh79!dkYR?%pB&VS>Nj4Sb3nI2kPw~|Ip}3`9|At~NT*M~*rQH<&CghUo z^!a=lhJ-pVA35fvXX0=v$bLxDxsO9W+5O#qs4p{#qRSKNgFIe z%+ftKea*}Q?bAv=JJ=AJtKQ_XVuKM}L1=t)e&~nlLK3o3K)u1T0DvK%zg(aokE>2O z@{zGbK_QJ2FN*Meo|L^6%I!8=s%&1Y;v+Y+K8vn3l;TuxXNfXZ2*Tw=y5pLCfN+wy zN$5My?4Psh5ewi~7kaDZ1CSpL@QKErS16cI~2x~|ye1VW3|!DH~Ef}5-)5sSOr-vS!&yDgdfn@_{f8vY^~dpkAg z)q^K^h3tEk*YYwK)J%NZYUN7b8i&Q;uLx_TdbPVLA~g5Gm-1gPfyW0sT-v9bQC2p8 zD_a_gN%BdOT&Z_FD)dwI}#A>>s$7AC_aYz00d7YY~y?p}3Va8f)}R ziat^`$TYwbSt7QEeVUz`ns~&KPp}~wMe@SOlRsE7cT=l54%sW&Se3l_a5#cv1JB?!Rd;;>|jTT*m#;zqHN3UGd8L*fwp{c=m$s6UW7XE=Au!9B`Cn?L2%>FAG_O6k55+N4_a-yZXZlBz(XV)Rz_-?`aYAd=!hYNDhs9 zUD1e9!|0cE3PQ8-P&Q(wj*g06s%OO_$QjKZL5j0F4omb|0eZ|o?u|jN@KK(|Uek=2 zUrDP~FD`T?BFfigK&7>c#i7mF2Vumzu!I~GkA3p!ms<=(PU)kX0-Jo;JMl+gyGAjB zD263yeGt;VTfm^XbsD{djl8v(V)G^NfQIksFep9aDdG1^R$ck}S%|ELh*TO?(DfMype6-0G1cds&%e(DD{==QjoiJO(L4+n^iy)yS9#W_zLXFH?g(bo$ zrbq}90^G<|p{NnWkR_tP{lNzY0!oM>5z87~_y2ym`R(7KkI$`ndwEaxz7Lv8vU_!Q zD2}s4^dGuiV5d9v)onwG7~;|Tz4X8xeSb##VH8sg%V4pt_x^PLh|j%8K}*$7WRrb= z4mBhSfABMA?MOltzzxmR=!`9X z3xgwmA5;)N3YK`E&)N3qHIZOS_OZ_V13!I#jXk`RD~c$%79?9s&~9ZUbyX(DyQ*Tm zND8moCG|_@rJf+ z?;Lc}#H9b~O}pqKs|;k4T!=f{9;<&y(o`gED}n=H*rC5u-<#%d*u~tV54pBFHNYg9lAX8M z^6ai(hYHfqNe#p(&5nvXtu;FFt&6Z8yrZMzVt3x)x60_mPx#uJt0k!@<+^0Q;45U~ z{8Eii(?!miSgJ=y``VQlCH3}@sPv~iM{oKcO4@aPjkV_d;*Ko$04oyH@aM&~#>_oC6I_#XiDvtOSyZM^jCvmuCf&5LggObn za#sSMBGOpNM@|ciCs*paDW-I=uAMR^;LIW|2km(h+Ip)eY*UOOUJe3`uL-DpdH6MM zu!MSwq|ljw&QAB?Nzi?{M=#ljQoy&_f#psI;uSv|r{eg?VPWyz-$-U!oLU`FvNG!s znBJ_{N28l&X7nG-SwMhXUHj}+QnsksK>z}m$_+Q4#PTK-SMJkg@Ro% z)J*(NJXK@&zb=w=LFkMmaI&_u0_4j>O1;g+CY8;|-}y(kb^5JivsT+yBuY+1Hp~45 zzx(AbdU$$E4`GW7){6N9Pyi8 znYSfD3jvh9tn2*bp>WCjbaqYYY~=`nj01PvWq;F@Y1!&t|BV#m^L?RxwlTtB+i69v z5|Tk%U!9C=n0dwLXItvc?azW@l~FXZ5h$8ltZRY?2sn{280Vz;CZF{$#*J*OqYK1V z-B3Sb^hSvMiKo*eaRZMIjpgo%PIk)Kk%_dL0Zu_F1sM>Fz1Ez$(QHdm_}tUsMPYXc zQcnodL%BI6FfL{Ei^^6SjZ=#Un?yS4bhZkR1+xm~$H{UuP-*ymfI6&0q37d2-Q6*~ zLzr0i2f(Kn zcW+?PMf!Y7*&adGTMA9>4~Z8a#c9Ux_CM%tUb;EGnJh$SRD#)eX~hov@Fqxy#&c{b zEBfn6?R;hX^T-Hg_*6ykl9D!A=ohXCthpVup?y`i*=`8w`>Y?c9VtcQ)MV$T7biQ$cdJrR_K)Vh zGB5HFWQ}5Xo$Y-%qSs)6RVOlcWFxI}GaZaFkzkjl{@Vq~AyU^MIXq6>dg6)AL%h=m zKe5Qyr1o!M&Z)YqLS)N($>XIw4qC=KTTz@x&b!+GXkq`HxWiKiOrNtNA%0(t@d-aM zJ8pDGQ>9qfuKokQ^`5b2t%qdz;<-Db~fEXi7Yg!Mwp;#XsCLBpaWhR*1{zK_!o~kS@yK^N-toWD1mx+(N zOw42PobrGaO_&Y|lGb#h9qB95puP{KWV?Mdca%vty@_Ql zAh!}%Ze^kCLLg^PJO{P#5k2)WU6Qx$H{`Dlz6vbl=k`G z=-xtoFQrf)0m^;(`lxlnQ5ll69n*^ZXVea#>zMSU->_aTT*96#Cs_s>5+TP@n#TC%(Gs7-Fln@+D1PIJSjqv`wE^eO50_6g?O3`A zRPH=-kKV*Ss@RKR)srksOGm$dYO>&Ee*N|K20!@|L-Nk7X5S*_-8D+~0+;pIQ$Mf` z>RsFM@8UojFz>Bb$0cdVI^a+P)zxd$y^1So*%AGw-gd}&CzhHW8fn*kUO1|7wY7uJ zm~E**w9hu#`ZC8p?@ieV41rZdj)@BAo2CYPO^}*Npgh<+xO8`yyhHkaFj8C_HEi`= z#Zh3S46Uy8aM4dZr(H7T(9*YeNzw_)C>wbZ8rx9cG}g=U%sTshQT4RNWiEd?5gO`j zv`hDL-mzs`*5#J0P3eQM*NLeAzINB>fgIXWiU>NgGD&5*LxXqn1(3;}`gl>=%ggH8 z8m*-xR52+9Rpa@_S5vFet+F{*?#g%fgFUQ2^PFLx-OG`)sMdT(zVnipq9g@X4!W~G zX^-$E*yt4t(^#1%XxiMX*I;LiyB~mY0gP8*z3TRx&%khc1DFs$SI}5gnzLVOLlq@Q zXJzWboVj0PC`uUruLLyTr0RpkY93k%jo`Y##$FJoZ%v*27JYdWAmTpj02a_uMvtw* zUgmeD?8|YL^RTZsHeU^<(Qa+OQ??ePM9>f`eU21p8JnvCbk$pdC<_c{hQ!{=x+cC4 z46*;_j-XzQ(kn^dx@j?5z#o*64k{cidk1ZDV=3ZZL9#3_I|O+=YgOrV^hz2l8iT^d z(5wLv4Q*82#h(^irUH1{V5jAPW&syxsgzro^t1pB3F6=j3R2d_ty)7%4#JQiRs0V` zf|mWmrDa-}<_VsPM9y*ii*`ZmtHRpk*upVU^+u?N~9ALX;5!dZS%5eVLFj9!ejo{F$H($8JHE9fIglj3t^*%g$A3nPXDOMNXl`IMx`2nG9qHyQg*>gh&#& z;bvT`&St!CelQ|T4FrN`TylBSf~qpMe55_Bqw6qWV#eq+}O@e!^ZWYC)e^oW@ey z1a`lQYXDCQlVn~3LSS|?*7j_pwSue(4TKl)a<`mx=ZNiC79KB${fqRF2kyp+FrDx7 zh}m{J15NH{w&?vjU)RTF*#v};v`TocKhtchiivrWrCC*o;mk@hBjLmJ^T4s@9CM7^ zaXNHZh}19$lHP)!|J9!mR9gnL$tw=5{#c6aa$;q!{x7B$ST__ot~9WqB4`|4buKD6 zU-m-zN&(x{ft_lPb>Y84T`KlT`TjcELseQx(^>8-fxAt5MoXM$n{$cUg; zP+Fgw>17xSIZAdY%0sHy^w0Lw+X-EymWUQn!_!p+$1E7viikmM{2P#BzzLziHHvB6i zOP8}-epuH1&8{tIA>@cg*}0{k#TT)T1Udt4R8;J}`S4@KYQKrR8|FBgr@UV>v@^W8 ziJ6?z)TK4)f@WXs$)@Gbh*EN^Ai1Vk3>xDKeqSV~Y}?(<_l2M|KdO`;Vvf@wOi0cMbf%EWW!Fpw-O}TO7;T{8P8vCcF9$?r?=-TZpWV z30FpU{96Jme*=+GXnAb(l(CdX7sRClhzQN(nC|l1*-_`gq++}k>2R-3wl+A+x)r1q zGg9WQHMOwadjyLh9<=GHQ!kga8KOAcfn`cCg2bA(6FLC7`G}D=w`*Xs6AE+RQ?vJC zl~ISbWhUkZ66;Bc65;1;X1@DbCGY_1a811fOfP(RDpY`}Ve-5|9-ZL|iHzuRUoHC(j_%L8w)m}Nx4P**f{`@v02z<`;`JejobYRl z?LBu2>`%Jdn}krZ&v8*6#z9j}ldcL4j2WK?z!#MX)w4PDLq;b|3_vWZv9$bIe0Ubg z+A=Myyh&kkZPBz=)33YT10jaYNx_e3*6*5p&3e;Tr=m^_T>HJ?|K7*FD4o=N?JL+2 zs;D3gSY1)9W%CzJ4W5Q!+M27#7>->=f5m@OA@8>xwPwn1rK>`d;`89OKybbVEDN{L z&*6@7+?L}xw);s8>fzx^5&UF*!F5}DW?u)bqRqM3E4OY5nh7w7z6?Q{>Gpz~9Xce> zod5ae;{jW4Xk-}@j1q0P23;tf=xu7WzKrVNLxH)D<&$9OLw>z6p?kjhF-&6 zs5jX!@dD%}tm4Io-M1yVL}07^8=dxk?RvI1o>;VPZuq$E7UK(A>O@D1aUAR&*|(JN z{Ny7aF0TWFgLyTj6!t;(4_v-x7XZbId-8s5@-8~-=LIWLodZj4zhC+V|LPSoh>WwC zGcA%sY9G!e->fECzVv^AdEuo~v=P;@&AeeM>sote3{+XJ{2);jxiV;)XK z#UHfdO%iVzH3*s(#3&uoZ$m5$?srMkw&TJL7vDbGvYD)-y8cT;MRjA^^z&kS#g@Jh zLFS~^6(mIP#v1{_sgU}3|BM)AS$BjeK}!xU4}a|xhJSk{y&kx7b6(|4dtsk#nOdHE z&vgPQ4@>RF{h9bseE;zoTHh04{oIdx5y6KrbK}69D-z*tFm(QSnfEu#Cx~`exFE5O z91B6=ZuK@7?Uj6f8zH-mp@?|!qsjkn_UfuGvX8(_2gtos^;Z7hPD?Xm(Q-G=$aOof zKXgqT{HET=+m>Efysv7$Za+B2vBeb*$wBguPcMzmKVQCoVtT2-{L6*ZFukej4Yqd0 zb31EJiqszrx-ePndWrm4UOB-32-E}a{I{@W#3NI zY*J0n*+balkjbo5Lsid4e{6mkJ$&cX;>G3fL4jE^P6zJzUR;`lqMA1o6x#;ETkAZzpf<9jo2!Ah2Q&L~ySUB1`ee^ZbOto+LdDp;mw1-cVNIT4w zmqK&Mvmx1RGMs9SElijCHIk%|7ZYNgva=(yJ`1x!)BW*x^QAKf zjnN9G5Vrtps1za+s-@X`=`Ptk{c5V6M$T_((sAV@Ds%=yEhC#tbR^L2{J$J}vNOmD zq!MLa!yp9$ryAma&3BCiE#6(4(=rdaW6Shn-ffXmz#$*TXP5hrL@fVSjfl3o%t=~B zGr2<1L})vD6s%3tuB9ENi+EuMJW>9HJ|8QHuu@c?`bH4OM}t~A+FoL z;p-OJg@68;J~(pH`s!C+k~7UD935^pyltdoVm^A|hnD%hmC3>KCx8#;&aescKeB;8 zV`5$Km~bd#aY*=>-Om8_QwElJvj$~}Mcz9#a%W+@)%+d?!`+m`1+U@`^!j$>ZXhRk z$(PWss7)??z5X?Kyr*jW$kO<87yBPiPld7=+@a@}|8>Qrf8`-vcVZFYT+GG(j^Dzg z4P3^#A`Zo0SWK2MW(J=jp*)Ctte^i8B0QWY3T&XkE%_7+tk}I838XVN3z0qK6ks)x3T8P{fn7HqORlK`ha zb@2xCKI*1|{N$sTPz_n!o$Y@o|3r>W-B>|t|MFh=fF(MA+P(9uk|qXUcXqC2H@F3x zU7<%pN4cW48mh!psG=xzRAGJpn}$HQkPSK&jCe@OO~RY(V0(n%k``ASX)K4c#XHV+ z0pADy)anRqvNA$vRoAE!(fbPTJ%4=i!Qc^6ZR4u~8F?{UiVgSpf@`j>qVrKk3qa}g z?EUDi<`@J{4Exv2e-VrJC5t2ENa5$R%}1EQ*Vin(Yq$@eNmXgW&ysTlV8%%&KWio& z=g{N=pi+K!!+NAG`_ooh271A5UnY%BjD* zSUd(tXvzk2-|vl4K&4*G|K8@*fCl|1B6@;8sl3x-t6Ad@OK@t?ZgmYxTVT)*wP*L< zca3NG$j{;wT$jHDhjd5+8p*)9J5ypTU;~w8VvmG#PYYg zoadzse^X}g3>1S%rSH)ArKvOw23&0Y>lqUGVsokgu*R|t^HD)#Tx&$Mw-9lUrapvV zU;irupWcRw-Lj1zEowIbbJtO!NxkK<%aipz?@G1dJn}jh=?tec=xhT@8?C?CDbN&H z;$&^H+vcixOPmJB_m9XZMith-i`_CoQes=o>+DBRhr%rQ{UYBg40i_laDv1{)?~A*XEyevq$5SE4l#l$N0?56H8(9t-xifQh zd4Acud@mn)5xl|CpNJH`&l{3G;WJ>6yzRp8&gaD*o4o?|GZCe+DDgbd^GDF! zlaJ9Q=$`p~ia}17F7E8y=*oi{X-83Skjvd<&-j`3++cZI1!2)Qv6@dRO$%h?wK`Qt?G)cK)+HcV?$Gq{Zp07BNbzuOw!#ulhaE6lgn-MK+^t(CRSZZUdhmpJqRv zxZDuA)s2^Qe52T>#cdb1F2e|ds;pX&?()UkcklcRkDERIHPHKTtD#UFFKMsjf8Lup zY&}xE=ofX|z_VKKt^fDZrX5;&!@ojci7&~)!g{S&Vxjk)rC`+vK z`G}wA^J6CQA&u0^faGKO7KAznfA@eO@9}LK7Q7DJqp>b-g|KdaYQRccbffW5Sk^Lk zbyaqd@A1x=whqI22lIrswQX5P6mF64)2XeK&fsb>f04W;~3 zVxEnra=4pwRg8AmxG}~UXVmN8@oLFFKdx+I>VZ0 zWL|C@roAu}v388yz6%D^7FlPGF!cgvBDKh?(1eDg-#1+Mt0(ISb59IP_JW&nd$wgo zaPew1CwjoH;)1IEeZyI_m!2Llc)~ApmoLhTmyV?>8#cpL*d1V>H%xI1XR9``%F&`vPN()!%*1fAN1mL;uX; zV@o>b>+fC#EU{?o+$cQ)T%x7aOsS9l9U9h|r=PlKJKkQ-JQ!U2MpA!KI8P%WSL5dE z84F)%BMezhjBqBgEQ#>0pG*BabWEjy-%f*)Ay=p-p!pLX7Y@|~|2j##fYHaWZ8wDMInOoe{i`Tq|cJvUoq3BGE9Kd=V1V*?cHYu2G`YW zS@nf={|mR-a)bDuotflKGvgdHceO(cp)G+6_XmMF8LKT(?yG1E)pZuECz;KqXyt=$ zJ^lYAB}C>2A9G>{%UKW?^J&3=I(s=@t~ot zj^R@f;N1^P)Q1VKWc@f)H*B2-xg=f^ok1L4TC+{2%pT~0QC)!^(a|*-p|e=2Bw6d! z0D0b;(wVCJV9XR~`0f3NDGxcjL$bwd^oUkRJP$Ck4xa$)fG)1mj1>*+)ig}yBR3GB zfmYAf_!(yxds5^WWti}tuaEv`^}PwL7jo|YoCw6ogF7i=EK3_u@sLD6{6>dvr0ARL z4-=>qjFTZ#UcW0*gUfxg$=QeG`GKL)s|Cwn6OJLZ25jyX&i%_9q4HQ3 zcjGq`44R9r{Ac7;&qQdfaud3z*)cUa7z8UTaS)s>sI)!Esh+uv_Dy$_WL0|#x_#z( zpCIJiV9f|<`YUj1>Lfej>8DFCwCqK0%Fwn8<5RF*T%Opq_`225+K~np$4}dWoVw#~ zG`J%wx@2GfVU^qom- zx^B?R+f4J%?C*IAL)PP1D>a$Bq-0g&!AIR^qhoGE2gNcHW74$r{lu_e=k#`a#ky3$ zZ&1vzROmrk=lwe7unz{fJCu#r&`Cy)M7TEj1a|~(B0GiK}t>#=&m_1PpowC{~=d0Km#Ru0gZkEoS%oL5H-D zKIUqNoGG~J7X}PV^WOqF|vJhFVM0;?9hzG zFHHLMEA})$Z9A|4UbISO+TCmysumh71?v{g!Dm*fPrJwXp$nPGj7HHG3!PKk5 zoS64;4aFm}Y&iW8KRAyS*_|qt(u~|V_RpFgBjy{3L^zO-KA3bbE0*RlPBJ|(D zUcY4$hNDMf?uQ(Lj=EJby##|$T_@E_1ZZGBIQwT>fB}>xa!P{oaHbrR6dcb)i!XE@ z1xowifF=_Wd;Gw$=Loa&KS~4U5AG`*!ZyIgwtI`g$Yaiog%^nYR*m7e*(rIJo&_`8v)d45u7-SY*U;wsHaQbu|=KVXx zOJ%;^eL*9)asg5AqwfZH*_9*G*RGMqo1iHwO??df8O>wOMoI#HBdz;g;3zLa)20BX1xIXuI5#?bg`L zzM0sD)H(TQlAyU4CJ6zuI6a=mONy8cPKQlKS##<3`5*fEIzU+WTZ@9vCc`9s*>Dsn!!j(zTiO~yT&N5prx{y^_p)lL1xn#wxcGdqBL4N$|` z=^q=>6_t8QO12)dcS@1pBm>J*jSb$ar5`5?BhIDS-A-mOUpM#!A?JZpJK)r5>Y)OR^z(-Tr#!Vv}f_Mk-0sZhrX#C zTDxAB2GIBZljRXp9-UjW>i4o>eSl;5;eEi-X-dgm=Hr>X`CmaTDt|sW?hV6pn7dsU(n&#Q=1?^d`cJx#0CuvNAo<+eS+6LEOmLK7LnvbQAlx;;yDJ%yqiI zyZ?V_*+pfx@Om9=V8bwn9sS+6rv||NAxq~qm@h?Uu}L*5YiPbvpP<*lPtn&w*Oa5N z>bxpasH7)>CRaek&iFcfLifD_0IvHBJeF3^tiwZ38r^*Lq49OReJTxZ5D+M5KWXgi z4xyqfqto9X&X0JOslItesli7U3)^y?t-}On$=N=v>6V@0cK%=z*m!f$@ISe+a~pxo zuRFBJ2l3PP4YgXsRYCHn^+j!q+23~XS2_8+p96DbfRp7QH)8Zg_Q}DH`#vbEO?8Vt zn{l~C!$=PHc_?JpX1n;QG;>V4$7@j&SaRNiWBk0vn_#-dauYv=N<28+z6CU;4fqOs z6+0Dx@~h?mb-(A>-E-s42G0Yeg3-Vla6fIMnnxgi3Y987G>G2F`BX-KIH92cE9kEC zn>u9(WN|)9Z)?fF(`sg+Wc?4N6VG;-JD|BMW9xZu7e_kQRKv@+2MdLXjx;Lz3nVA_ z=i@@&krQxts3!a(dQ$*(TFZ>qyw_Lx$>$H=q3VJ5zAn#po`nt#;zz?ci9I`p9|!Th zp*q#&o+4O5!Z~^I)S3HOQze@<1^p$&eo)#dx2T4j0LpPzn~QadyfB=+I;t%zS`b|# zj;TN2?_tAyZD^|7Q1)$yAgdB)aC5YiUpMUCQ%?V|9C4$q2DTRVKMuffFI5dv4ah=$ z^h#8xN9IH3uM){p;DOgjvNDj9jH0tzz4y5BuB^)a3 zmv~3cL#0s@&du@iot-*$ap8eEm3ejb-4kp%;0<+@-E>*;mRh6_s1f_1TmSr+w;|mQK(!z_Fn}B6t9> zR@>x9h|{DSa_pI#A!L$);VYaS6T6v~AVc>SuYeqW=IoWMxSn@+*jFb=){ zaD}knABAQW#U0X=16Khm%nBc#NaXCc`wXf9Fo`<8{W-Xrx21}ti1V0f*zi!uGVBdx zUjb(Tx4*NgSC-Q5KzG1@%J;Se$giHpH9QG#KwE)BpDQ^vcqmYmlixzg@L7a@lPLW& zc+EE6g#GCL1Vtj%!A0`#SXMa-azsIQ4r#i8<0pZVRyBT0K(x+8Qug8nfycAJqoLFq z*meq024C83HOKyFnrZtAHV*s2@H@zpkR_!Uf+y?e>wzooc!(Uqd|D4xfh*}`<4hX| z9kw-oSZ^im41v4LW*O}RI zYIM>;7MAJ_-h>LH2E%#)s{REwgt?!-j2tN}ihB~9s>6ytWeQ7md4Lj|<-^U-uAFJY6Y z#=fb}x~^`C&j6JSflB&49t{{~H~4SZP`5%tZ)CX4g3@ zE~0UNQU=6@8+wlV1-g&FvtyCkutA^^%ZDQ41!SEU1JCqAffge(Xv>pO7n(5pE8a&H zHa@2fK9v9oc*Xg z2|r#7x%=RZ3_+y*XmN4_YGU#+VT#Zs3i|{eACr`W!p`$kddqhUdF{mh1rs8scoRCp zND*_X4CrJ)rB@pU>!9f=y?4TjbMeBfw=%?`{edARX*FR@0{}X(b>@*&9~~MO$ZV)2 zI{jrt0^Fu|2o-H`KTRN`AL!c#ArH3R6cH2hKJh|Sq$x{7f9%_bZTap6Xv+ejzxs@R z&lM4SW^N1LpVsKDXWkDk(r zGkg(ko7gfeZLlU12&$lmkfyIvzBaMr8t-_;|!gQy$Nu`MZY!?7`?4l-^21(+su6 z&+JIB4aiI!;H)+E1_bI=T_($hL?W;+07Z9m@4$nh>%1h6FvU5O2P#o6)U1&YTJE!< z3Dt4VRcvlU0tr8-(|J~&9djgdEM*@lW-Ln_)RbBgRb#M&SX#su-b4sd zp3Q~m@0XPY&vSnacm2sXhaQOFRMGARqC?PV@8-vZXQS1vWn{4U-*IbgvrELpb?o_n ztaLzc1L>$oynLQ7p8DulM|R#Cow5Ck6VR&s@IUt>`5DDNA~wobYv*8uVdMtrq(B2TR-? zL29~!LB>DdV(^geg(r{?e+@^^!s;!(Ez#$6RYb}&OFUxCukmb;F*7w+q!0aU<{@pw zlurb?s!Xi~5!xDio1dAZmk^`9JC%|zx1R#>t!=*HJ)gg0YwD&1F1z!LL>H5;oD>JHrzV1sVR8iYU2`;@|$t3-t2275eZViIWf>O=%wZT)JM3B(0qEn+ zjZ8_3ojn2jtppJh&f)3voLUl=n7PJ*brVC~%3{g0+030vtebE0yAGo-?SdT}(E&tB z2lVf;BD4d=;iIGm!yC*Cpebb=7n`r#X)~y%_)oE}X(F|Dd}^uZx$2Iwi{$TB>^iLD zxEYb#67@9Jnv)BXnwiCnHIR_n2xrg%^?^tq(*R*L?hJsl#f`P0N*qiOLh1_h@YHjb zf|q;6s9i#JoLWvI?3Zy?s!!|hrNKGjxDjh84nqrg_75Dh?h0Y);1P3IP(=z>-dF~Q zSb+vIY+~MWkmg<7-=2}^@Acf@dr-KUGxxWBB>yQ>7YFpo=w?yrc<%egNkPrw4|`=$ zk34Ge5MDZ-Qv=u4R;c~mk-+~1Lk$a^P)|KyM1u!yDL(S3k8}p?2Ysl}Qs=jR6x7&< zK8L)uhOv5lg`A_%_Yiph2}{cY#^kNd^!f7lwQ_8>?@py$a_ZGYco%t7Ial5JYE&?S z3&AIPZc<8)rkLZYrt&XB&u${bVc{97P8CTNCzoCn=S6`7&j`7`d`;v^{{{FXB}Psw zmRCx+oJUUhwpwA~33&0UtXV@TC!By7H-?`B0*t8`^?Y~`<3jYV)OtB6m0 ztya|lp`;_y5vMn30}4HQso|&uW4i&K85m{h>D9=~Lo(5+4P9aH8%U()gryH;e#XLs zQN`NOYuT1N@hR8J9UCzLz{2C5N}&m!Z9P{Vkx2=mfr!f4vnbaYzLDQQSt!*a@3aeZ zyVUSlBA+IlUjcPjp2T*wTEuLJd|?CsCUAk)ODyMF<0TGM>apJ)aXtl?!OGfO8eANi?_8~cjY9QW_*8tK!v9{5iSPaHjCi!VGz;!l#a0%9hV z2GG>Bs8dRNs-m_!;TihgIpw6i((0uxPWVYlPNhVc1mOE2;*^{iJcquYhglf`3E%Uy zJhVc7e9twnsSHI&NQ*le%4ofpbYW_%GoJ50z7}3>vQMTY{vv1_ze(A?FCe(u2OUR} zYxuo3xt*X*&GO)hi(9b|yotIg*y*uGv+g!r-_UQ~xZU;WKb24&mU#KYNv*zHPNasK zkEs{CdT$3w9}#Gsa@)=CJ$zp<$rQ`U8LK z@@DLt(Ad<9xQ~2l#udPM3MV!FljKR?W$DB3zZ2Bf2*>ciWl-NOxARW>?6kB`yAdY7 zB^0Hu5O%BE5fc+Hav&~L9GzHe)=JPCwyqG&eAp^`w4zK0ZhHbRYupXDX?g9-poD+; znUbA(3prI;3iiu!$9^s86Mfo0s*(}Fq$-FM6< zJKsrcnVDYP>DX@X1I#h!!tP!*{xBDE=#ajL;Ro6|0#jxw2!lt0&Q(7AF!<60{s9kU N&+Y@eo*B|E{U2aI6Nmr+ diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml index fdf9b7d..4df7261 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml @@ -11,12 +11,8 @@ d:DesignWidth="400"> - - - - { - control.BlurredBackImage.Invalidate(); - }; fadeOut.Begin(); fadeOut.Completed += (sender, o) => { @@ -167,61 +141,30 @@ private void BlurredImage_Draw(CanvasControl sender, CanvasDrawEventArgs args) var imageHeight = _backgroundBitmap.Bounds.Height; var imageWidth = _backgroundBitmap.Bounds.Width; - var scale = Math.Min(BlurredImage.ActualWidth / imageWidth, BlurredImage.ActualHeight / imageHeight); + var scale = Math.Min(BlurredImage.ActualWidth/imageWidth, BlurredImage.ActualHeight/imageHeight); double xOffset = 0, yOffset = 0; - if (Math.Abs(imageWidth * scale - BlurredImage.ActualWidth) < 1) + if (Math.Abs(imageWidth*scale - BlurredImage.ActualWidth) < 1) { // Basically the same width, we need to scale up for the height to fit - var newScale = BlurredImage.ActualHeight / (imageHeight * scale); + var newScale = BlurredImage.ActualHeight/(imageHeight*scale); scale *= newScale; } else { - var newScale = BlurredImage.ActualWidth / (imageWidth * scale); + var newScale = BlurredImage.ActualWidth/(imageWidth*scale); scale *= newScale; } - yOffset = (BlurredImage.ActualHeight - imageHeight * scale) / 2.0; - xOffset = (BlurredImage.ActualWidth - imageWidth * scale) / 2.0; + yOffset = (BlurredImage.ActualHeight - imageHeight*scale)/2.0; + xOffset = (BlurredImage.ActualWidth - imageWidth*scale)/2.0; args.DrawingSession.DrawImage(_blurEffect, - new Rect(xOffset, yOffset, imageWidth * scale, imageHeight * scale), + new Rect(xOffset, yOffset, imageWidth*scale, imageHeight*scale), _backgroundBitmap.Bounds); } } - private void AltBlurredImage_Draw(CanvasControl sender, CanvasDrawEventArgs args) - { - if (_altBackBitmap != null) - { - var imageHeight = _altBackBitmap.Bounds.Height; - var imageWidth = _altBackBitmap.Bounds.Width; - - var scale = Math.Min(BlurredImage.ActualWidth / imageWidth, BlurredImage.ActualHeight / imageHeight); - - double xOffset = 0, yOffset = 0; - if (Math.Abs(imageWidth * scale - BlurredImage.ActualWidth) < 1) - { - // Basically the same width, we need to scale up for the height to fit - var newScale = BlurredImage.ActualHeight / (imageHeight * scale); - scale *= newScale; - } - else - { - var newScale = BlurredImage.ActualWidth / (imageWidth * scale); - scale *= newScale; - } - - yOffset = (BlurredImage.ActualHeight - imageHeight * scale) / 2.0; - xOffset = (BlurredImage.ActualWidth - imageWidth * scale) / 2.0; - - args.DrawingSession.DrawImage(_blurEffect, - new Rect(xOffset, yOffset, imageWidth * scale, imageHeight * scale), - _altBackBitmap.Bounds); - } - } - private void BlurredImage_CreateResources(CanvasControl sender, CanvasCreateResourcesEventArgs args) { args.TrackAsyncAction(CreateResourcesAsync(sender).AsAsyncAction()); @@ -234,21 +177,12 @@ private async Task CreateResourcesAsync(CanvasControl sender) { #if !EFCOREHACK _backgroundBitmap = - await CanvasBitmap.LoadAsync(sender, ((BitmapImage)BackgroundImageSource).UriSource); + await CanvasBitmap.LoadAsync(sender, ((BitmapImage) BackgroundImageSource).UriSource); _blurEffect = new GaussianBlurEffect { Source = _backgroundBitmap, BlurAmount = BlurFactor }; - - _altBackBitmap = - await CanvasBitmap.LoadAsync(sender, ((BitmapImage)BackgroundImageSource).UriSource); - - _altBlurEffect = new GaussianBlurEffect - { - Source = _altBackBitmap, - BlurAmount = BlurFactor - }; #endif } } diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml index 33002f3..28ca3d1 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml @@ -10,158 +10,88 @@ mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + + + + + + - - - - - - + + + + + - - - - - - - - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml index b5a8d9e..921c7dd 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml @@ -5,10 +5,10 @@ xmlns:controls="using:Microsoft.Labs.SightsToSee.Controls"> - #2DA092 - #FFFFFF + #D1D3D4 + #545455 - #E6E6E6 + #434A4F #2DA092 #2DA092 #2D6B67 @@ -35,7 +35,7 @@ - + @@ -523,223 +523,6 @@ - - - - - - @@ -916,6 +699,7 @@ + @@ -2002,236 +1786,14 @@ - - - - - - - + 0 720 1200 + - - - 0 diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs index 9d61621..70dd803 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs @@ -10,7 +10,6 @@ public class EatsControlViewModel : ViewModelBase { private Geopoint _centerLocation; private ObservableCollection _eats; - private ObservableCollection _eatsGroups; private bool _isDisplayingSightEats; private bool _isLoadingEats; @@ -28,12 +27,6 @@ public ObservableCollection Eats set { Set(ref _eats, value); } } - public ObservableCollection EatGroups - { - get { return _eatsGroups; } - set { Set(ref _eatsGroups, value); } - } - public Geopoint CenterLocation { get { return _centerLocation; } @@ -50,23 +43,5 @@ public bool IsDisplayingSightEats public Trip Trip { get; set; } public string Title => IsDisplayingSightEats ? $"Here are the nearest restaurants to {Sight.Name}" : $"Here are restaurants in {Trip.Name}"; - - private void BuildEatGroups() - { - - Restaurant r = new Restaurant(); - - var grouped = from eat in Eats - group eat by eat.CulinaryStyle - into grp - orderby grp.Key ascending - select new EatsGroup - { - GroupName = grp.Key, - ListOfEats = grp.ToList() - }; - - EatGroups = new ObservableCollection(grouped.ToList()); - } } } \ No newline at end of file diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml index 03a69c0..ca23795 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml @@ -9,7 +9,6 @@ xmlns:viewModels="using:Microsoft.Labs.SightsToSee.ViewModels" xmlns:maps="using:Windows.UI.Xaml.Controls.Maps" xmlns:models="using:Microsoft.Labs.SightsToSee.Library.Models" - xmlns:inkToolbarPreview="using:InkToolbarPreview" x:Name="SightPage" mc:Ignorable="d"> @@ -66,22 +65,6 @@ - - - @@ -95,20 +78,8 @@ - - - - - - - + - - - - - - @@ -119,19 +90,15 @@ - - - - + - @@ -142,19 +109,17 @@ - - - + - + @@ -163,11 +128,12 @@ + + - - + + - @@ -180,6 +146,7 @@ + @@ -191,51 +158,70 @@ + + + + + + + + + + + + + + - - + + + + + + - - - + + Grid.Row="1" + Margin="0,28,24,0"> - + + x:Name="Column0Content"> - - - - When are you going? - - - - - - - - + Style="{ThemeResource CaptionTextBlockStyle}" + Text="{x:Bind ViewModel.CurrentSight.LongDescription, Mode=OneWay}" + Margin="0,0,0,28" /> + @@ -247,136 +233,62 @@ Notes - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Width="472" + Padding="24,0,0,0"> - - - - - - - - - - - - - - - - - - - - + Grid.Row="1" + Height="456" + Width="456" + VerticalAlignment="Center" + HorizontalAlignment="Center"> - - - - - - - - + Stretch="UniformToFill" + x:Name="SightImage" /> + + Grid.Row="2" + ItemsSource="{Binding CurrentSightFiles, Mode=TwoWay}" + ItemContainerStyle="{StaticResource GalleryGridViewItemExpanded}" + SelectedItem="{Binding SelectedSightFile, Mode=TwoWay}" + SelectionMode="Single" + Margin="0,8,-8,0" + SelectionChanged="{x:Bind ViewModel.GalleryItemClicked}"> + MaximumRowsOrColumns="1" /> + Height="68" + Stretch="UniformToFill" + Source="{x:Bind ImageUri, Mode=OneWay}" /> @@ -384,12 +296,12 @@ + + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + + Flyout="{StaticResource DeleteFlyout}"> - + - - - - - - - - - - \ No newline at end of file diff --git a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml index d3a0d98..9dea2f1 100644 --- a/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml @@ -83,7 +83,7 @@ - + @@ -120,15 +120,6 @@ FontSize="16" Glyph="" /> - - - - - - - + + - - - + + - - - - - - - - - - - - - - - - + + + + + + + Width="472" + Padding="24,0,0,0"> - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + Grid.Row="1" + Height="456" + Width="456" + VerticalAlignment="Center" + HorizontalAlignment="Center"> + Stretch="UniformToFill" + x:Name="SightImage" /> - + - + @@ -355,28 +330,25 @@ + Grid.Row="2" + ItemsSource="{Binding CurrentSightFiles, Mode=TwoWay}" + ItemContainerStyle="{StaticResource GalleryGridViewItemExpanded}" + SelectedItem="{Binding SelectedSightFile, Mode=TwoWay}" + SelectionMode="Single" + Margin="0,8,-8,0" + SelectionChanged="{x:Bind ViewModel.GalleryItemClicked}"> + MaximumRowsOrColumns="1" /> + Height="68" + Stretch="UniformToFill" + Source="{x:Bind ImageUri, Mode=OneWay}" /> @@ -384,12 +356,12 @@ + + - - - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + + Flyout="{StaticResource DeleteFlyout}"> - + @@ -489,28 +394,7 @@ - - - - - - - + \ No newline at end of file diff --git a/Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml b/Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml index d3a0d98..9897b6b 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml +++ b/Workshop/Module2-MorePersonalComputing/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml @@ -160,37 +160,46 @@ - + - - + + - + + - - + + @@ -201,76 +210,58 @@ - - + + - - - + + + + - - - - - - - - - - - - - - - - - - - - + - - + + - - - - + - + - - - + diff --git a/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml b/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml index 8349ea5..fa11901 100644 --- a/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml +++ b/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml @@ -16,8 +16,9 @@ Source="{x:Bind ViewModel.EatGroups, Mode=OneWay}" IsSourceGrouped="True" ItemsPath="ListOfEats" /> - + + @@ -35,6 +36,17 @@ Height="40" TextTrimming="CharacterEllipsis" Grid.Row="1"/> + @@ -83,6 +95,17 @@ + @@ -161,6 +184,47 @@ + + + + + + + + + From 973543e265a5cf49bd6362081dfb86a687967339 Mon Sep 17 00:00:00 2001 From: Matthias Shapiro Date: Wed, 23 Mar 2016 15:33:51 -0700 Subject: [PATCH 4/5] Revert "Changes to Module 2 - End" This reverts commit cdf840e25eab27b4751ba9d40c1a0fa5ea4fa8b5. --- .../Models/Restaurant.cs | 9 +- .../Microsoft.Labs.SightsToSee/App.xaml | 2 +- .../Microsoft.Labs.SightsToSee/App.xaml.cs | 2 - .../Assets/Sights2SeeLogo.png | Bin 17411 -> 0 bytes .../Assets/Tile_Logo.png | Bin 13105 -> 0 bytes .../Controls/BlurredBackgroundControl.xaml | 4 - .../Controls/BlurredBackgroundControl.xaml.cs | 112 +--- .../Microsoft.Labs.SightsToSee.csproj | 2 - .../Styles/Styles.xaml | 486 +----------------- .../Views/EatsControlViewModel.cs | 36 +- .../Views/SightDetailPage.xaml | 339 +++++------- .../Views/TripDetailPage.xaml | 79 ++- .../Views/SightDetailPage.xaml | 2 +- 13 files changed, 228 insertions(+), 845 deletions(-) delete mode 100644 Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Sights2SeeLogo.png delete mode 100644 Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Tile_Logo.png diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs index 8522ea2..1210b03 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs @@ -180,7 +180,7 @@ public int RankInDestination [JsonIgnore] [Ignore] - public Geopoint Location => new Geopoint(new BasicGeoposition { Latitude = Latitude, Longitude = Longitude }); + public Geopoint Location => new Geopoint(new BasicGeoposition {Latitude = Latitude, Longitude = Longitude}); [JsonIgnore] [Ignore] @@ -255,11 +255,4 @@ protected virtual void OnPropertyChanged([CallerMemberName] string propertyName PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } - - public class EatsGroup - { - public string GroupName { get; set; } - public List ListOfEats { get; set; } - } - } \ No newline at end of file diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml index 240ffe2..008f69c 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml @@ -30,7 +30,7 @@ - + diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs index 0ac0e24..1507589 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/App.xaml.cs @@ -218,8 +218,6 @@ private void SetupTitleBarColors() titleBar.ButtonHoverForegroundColor = titleBarButtonHoverForeground.Color; titleBar.ButtonPressedBackgroundColor = titleBarButtonPressedBackground.Color; titleBar.ButtonPressedForegroundColor = titleBarButtonPressedForeground.Color; - titleBar.InactiveBackgroundColor = titleBarInactiveBackground.Color; - titleBar.InactiveForegroundColor = titleBarInactiveForeground.Color; titleBar.ButtonInactiveBackgroundColor = titleBarButtonInactiveBackground.Color; titleBar.ButtonInactiveForegroundColor = titleBarButtonInactiveForeground.Color; diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Sights2SeeLogo.png b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Sights2SeeLogo.png deleted file mode 100644 index a1818693ea43d2717f642c7e38440a852e55f35a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17411 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 N&+Y@eo*B|E{U2aI6Nmr+ diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Tile_Logo.png b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Tile_Logo.png deleted file mode 100644 index b01c181fcedde6985df42f09b9030973e5add20b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13105 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 Q=PnQnvva4Ons^ib59|UF$p8QV diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml index fdf9b7d..4df7261 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml @@ -11,12 +11,8 @@ d:DesignWidth="400"> - - - - { - control.BlurredBackImage.Invalidate(); - }; fadeOut.Begin(); fadeOut.Completed += (sender, o) => { @@ -167,61 +141,30 @@ private void BlurredImage_Draw(CanvasControl sender, CanvasDrawEventArgs args) var imageHeight = _backgroundBitmap.Bounds.Height; var imageWidth = _backgroundBitmap.Bounds.Width; - var scale = Math.Min(BlurredImage.ActualWidth / imageWidth, BlurredImage.ActualHeight / imageHeight); + var scale = Math.Min(BlurredImage.ActualWidth/imageWidth, BlurredImage.ActualHeight/imageHeight); double xOffset = 0, yOffset = 0; - if (Math.Abs(imageWidth * scale - BlurredImage.ActualWidth) < 1) + if (Math.Abs(imageWidth*scale - BlurredImage.ActualWidth) < 1) { // Basically the same width, we need to scale up for the height to fit - var newScale = BlurredImage.ActualHeight / (imageHeight * scale); + var newScale = BlurredImage.ActualHeight/(imageHeight*scale); scale *= newScale; } else { - var newScale = BlurredImage.ActualWidth / (imageWidth * scale); + var newScale = BlurredImage.ActualWidth/(imageWidth*scale); scale *= newScale; } - yOffset = (BlurredImage.ActualHeight - imageHeight * scale) / 2.0; - xOffset = (BlurredImage.ActualWidth - imageWidth * scale) / 2.0; + yOffset = (BlurredImage.ActualHeight - imageHeight*scale)/2.0; + xOffset = (BlurredImage.ActualWidth - imageWidth*scale)/2.0; args.DrawingSession.DrawImage(_blurEffect, - new Rect(xOffset, yOffset, imageWidth * scale, imageHeight * scale), + new Rect(xOffset, yOffset, imageWidth*scale, imageHeight*scale), _backgroundBitmap.Bounds); } } - private void AltBlurredImage_Draw(CanvasControl sender, CanvasDrawEventArgs args) - { - if (_altBackBitmap != null) - { - var imageHeight = _altBackBitmap.Bounds.Height; - var imageWidth = _altBackBitmap.Bounds.Width; - - var scale = Math.Min(BlurredImage.ActualWidth / imageWidth, BlurredImage.ActualHeight / imageHeight); - - double xOffset = 0, yOffset = 0; - if (Math.Abs(imageWidth * scale - BlurredImage.ActualWidth) < 1) - { - // Basically the same width, we need to scale up for the height to fit - var newScale = BlurredImage.ActualHeight / (imageHeight * scale); - scale *= newScale; - } - else - { - var newScale = BlurredImage.ActualWidth / (imageWidth * scale); - scale *= newScale; - } - - yOffset = (BlurredImage.ActualHeight - imageHeight * scale) / 2.0; - xOffset = (BlurredImage.ActualWidth - imageWidth * scale) / 2.0; - - args.DrawingSession.DrawImage(_blurEffect, - new Rect(xOffset, yOffset, imageWidth * scale, imageHeight * scale), - _altBackBitmap.Bounds); - } - } - private void BlurredImage_CreateResources(CanvasControl sender, CanvasCreateResourcesEventArgs args) { args.TrackAsyncAction(CreateResourcesAsync(sender).AsAsyncAction()); @@ -234,21 +177,12 @@ private async Task CreateResourcesAsync(CanvasControl sender) { #if !EFCOREHACK _backgroundBitmap = - await CanvasBitmap.LoadAsync(sender, ((BitmapImage)BackgroundImageSource).UriSource); + await CanvasBitmap.LoadAsync(sender, ((BitmapImage) BackgroundImageSource).UriSource); _blurEffect = new GaussianBlurEffect { Source = _backgroundBitmap, BlurAmount = BlurFactor }; - - _altBackBitmap = - await CanvasBitmap.LoadAsync(sender, ((BitmapImage)BackgroundImageSource).UriSource); - - _altBlurEffect = new GaussianBlurEffect - { - Source = _altBackBitmap, - BlurAmount = BlurFactor - }; #endif } } diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.csproj b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.csproj index c1fac28..2bf4154 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.csproj +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.csproj @@ -137,8 +137,6 @@ - - diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml index b5a8d9e..921c7dd 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml @@ -5,10 +5,10 @@ xmlns:controls="using:Microsoft.Labs.SightsToSee.Controls"> - #2DA092 - #FFFFFF + #D1D3D4 + #545455 - #E6E6E6 + #434A4F #2DA092 #2DA092 #2D6B67 @@ -35,7 +35,7 @@ - + @@ -523,223 +523,6 @@ - - - - - - @@ -916,6 +699,7 @@ + @@ -2002,236 +1786,14 @@ - - - - - - - + 0 720 1200 + - - - 0 diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs index cdc0a80..70dd803 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs @@ -1,10 +1,8 @@ using System.Collections.ObjectModel; using Windows.Devices.Geolocation; -using System.Linq; using Microsoft.Labs.SightsToSee.Library.Models; using Microsoft.Labs.SightsToSee.Models; using Microsoft.Labs.SightsToSee.Mvvm; -using System.Collections.Generic; namespace Microsoft.Labs.SightsToSee.Views { @@ -12,7 +10,6 @@ public class EatsControlViewModel : ViewModelBase { private Geopoint _centerLocation; private ObservableCollection _eats; - private ObservableCollection _eatsGroups; private bool _isDisplayingSightEats; private bool _isLoadingEats; @@ -27,17 +24,7 @@ public bool IsLoadingEats public ObservableCollection Eats { get { return _eats; } - set - { - Set(ref _eats, value); - BuildEatGroups(); - } - } - - public ObservableCollection EatGroups - { - get { return _eatsGroups; } - set { Set(ref _eatsGroups, value); } + set { Set(ref _eats, value); } } public Geopoint CenterLocation @@ -56,24 +43,5 @@ public bool IsDisplayingSightEats public Trip Trip { get; set; } public string Title => IsDisplayingSightEats ? $"Here are the nearest restaurants to {Sight.Name}" : $"Here are restaurants in {Trip.Name}"; - - private void BuildEatGroups() - { - - Restaurant r = new Restaurant(); - - var grouped = from eat in Eats - group eat by eat.CulinaryStyle - into grp - orderby grp.Key ascending - select new EatsGroup - { - GroupName = grp.Key, - ListOfEats = grp.ToList() - }; - - EatGroups = new ObservableCollection(grouped.ToList()); - } } -} - +} \ No newline at end of file diff --git a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml index 8efac54..e1753f3 100644 --- a/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml +++ b/Workshop/Module2-MorePersonalComputing/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml @@ -95,20 +95,8 @@ - - - - - - - + - - - - - - @@ -119,19 +107,16 @@ - - + - - + - @@ -142,19 +127,17 @@ - - - + - + @@ -163,11 +146,12 @@ + + - - + + - @@ -180,6 +164,7 @@ + @@ -191,49 +176,73 @@ + + + + + + + + + + + + + + - - + + + + + + - - - + + Grid.Row="1" + Margin="0,28,24,0"> - + + x:Name="Column0Content"> - - - - When are you going? - - - - - - + Style="{ThemeResource CaptionTextBlockStyle}" + Text="{x:Bind ViewModel.CurrentSight.LongDescription, Mode=OneWay}" + Margin="0,0,0,28" /> + + + + @@ -247,16 +256,19 @@ Notes + + + + AutoPopulate="None" + TargetInkCanvas="{x:Bind NotesInkCanvas}" + Visibility="{x:Bind ViewModel.IsNotesInking, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}" + EraserClearAllInvoked="EraserClearAll"> @@ -273,21 +285,21 @@ + - - - - + + + + + Width="472" + Padding="24,0,0,0"> - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + Grid.Row="1" + Height="456" + Width="456" + VerticalAlignment="Center" + HorizontalAlignment="Center"> + Stretch="UniformToFill" + x:Name="SightImage" /> - + - + @@ -355,28 +365,25 @@ + Grid.Row="2" + ItemsSource="{Binding CurrentSightFiles, Mode=TwoWay}" + ItemContainerStyle="{StaticResource GalleryGridViewItemExpanded}" + SelectedItem="{Binding SelectedSightFile, Mode=TwoWay}" + SelectionMode="Single" + Margin="0,8,-8,0" + SelectionChanged="{x:Bind ViewModel.GalleryItemClicked}"> + MaximumRowsOrColumns="1" /> + Height="68" + Stretch="UniformToFill" + Source="{x:Bind ImageUri, Mode=OneWay}" /> @@ -384,12 +391,12 @@ + + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + + Flyout="{StaticResource DeleteFlyout}"> - + @@ -489,6 +429,7 @@ + - + - - + + - + + - - + + @@ -201,76 +210,58 @@ - - + + - - - + + + + - - - - - - - - - - - - - - - - - - - - + - - + + - - - - + - + - - - + diff --git a/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml b/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml index bf67362..5ab59e2 100644 --- a/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml +++ b/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml @@ -164,7 +164,7 @@ - + From 7781323cdd7fbe66c3fee431c586aa8be5a8f79c Mon Sep 17 00:00:00 2001 From: Matthias Shapiro Date: Wed, 23 Mar 2016 16:56:40 -0700 Subject: [PATCH 5/5] Commit for Module 1 begin, switching to the master branch --- .../Models/Restaurant.cs | 7 + .../Assets/Sights2SeeLogo.png | Bin 0 -> 17411 bytes .../Assets/Tile_Logo.png | Bin 0 -> 13105 bytes .../Controls/BlurredBackgroundControl.xaml | 4 + .../Controls/BlurredBackgroundControl.xaml.cs | 112 +++- .../Controls/EatsControl.xaml | 190 ++++++- .../Microsoft.Labs.SightsToSee.csproj | 2 + .../Styles/Styles.xaml | 485 +++++++++++++++++- .../Views/EatsControlViewModel.cs | 36 +- .../Views/SightDetailPage.xaml | 173 ++++--- .../Views/TripDetailPage.xaml | 36 +- .../Setup/scripts/snippets/AdaptiveUI.vsi | Bin 9327 -> 9634 bytes .../Views/SightDetailPage.xaml | 15 +- .../Views/TripDetailPage.xaml | 17 - 14 files changed, 884 insertions(+), 193 deletions(-) create mode 100644 Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Sights2SeeLogo.png create mode 100644 Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Tile_Logo.png diff --git a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs index 1210b03..f8b26ee 100644 --- a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs +++ b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee.Library/Models/Restaurant.cs @@ -254,5 +254,12 @@ protected virtual void OnPropertyChanged([CallerMemberName] string propertyName { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + + } + public class EatsGroup + { + public string GroupName { get; set; } + public List ListOfEats { get; set; } } } \ No newline at end of file diff --git a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Sights2SeeLogo.png b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Sights2SeeLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..a1818693ea43d2717f642c7e38440a852e55f35a GIT binary patch literal 17411 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 N&+Y@eo*B|E{U2aI6Nmr+ literal 0 HcmV?d00001 diff --git a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Tile_Logo.png b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Assets/Tile_Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b01c181fcedde6985df42f09b9030973e5add20b GIT binary patch literal 13105 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 Q=PnQnvva4Ons^ib59|UF$p8QV literal 0 HcmV?d00001 diff --git a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml index 4df7261..fdf9b7d 100644 --- a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/BlurredBackgroundControl.xaml @@ -11,8 +11,12 @@ d:DesignWidth="400"> + + + + { + control.BlurredBackImage.Invalidate(); + }; fadeOut.Begin(); fadeOut.Completed += (sender, o) => { @@ -141,30 +167,61 @@ private void BlurredImage_Draw(CanvasControl sender, CanvasDrawEventArgs args) var imageHeight = _backgroundBitmap.Bounds.Height; var imageWidth = _backgroundBitmap.Bounds.Width; - var scale = Math.Min(BlurredImage.ActualWidth/imageWidth, BlurredImage.ActualHeight/imageHeight); + var scale = Math.Min(BlurredImage.ActualWidth / imageWidth, BlurredImage.ActualHeight / imageHeight); double xOffset = 0, yOffset = 0; - if (Math.Abs(imageWidth*scale - BlurredImage.ActualWidth) < 1) + if (Math.Abs(imageWidth * scale - BlurredImage.ActualWidth) < 1) { // Basically the same width, we need to scale up for the height to fit - var newScale = BlurredImage.ActualHeight/(imageHeight*scale); + var newScale = BlurredImage.ActualHeight / (imageHeight * scale); scale *= newScale; } else { - var newScale = BlurredImage.ActualWidth/(imageWidth*scale); + var newScale = BlurredImage.ActualWidth / (imageWidth * scale); scale *= newScale; } - yOffset = (BlurredImage.ActualHeight - imageHeight*scale)/2.0; - xOffset = (BlurredImage.ActualWidth - imageWidth*scale)/2.0; + yOffset = (BlurredImage.ActualHeight - imageHeight * scale) / 2.0; + xOffset = (BlurredImage.ActualWidth - imageWidth * scale) / 2.0; args.DrawingSession.DrawImage(_blurEffect, - new Rect(xOffset, yOffset, imageWidth*scale, imageHeight*scale), + new Rect(xOffset, yOffset, imageWidth * scale, imageHeight * scale), _backgroundBitmap.Bounds); } } + private void AltBlurredImage_Draw(CanvasControl sender, CanvasDrawEventArgs args) + { + if (_altBackBitmap != null) + { + var imageHeight = _altBackBitmap.Bounds.Height; + var imageWidth = _altBackBitmap.Bounds.Width; + + var scale = Math.Min(BlurredImage.ActualWidth / imageWidth, BlurredImage.ActualHeight / imageHeight); + + double xOffset = 0, yOffset = 0; + if (Math.Abs(imageWidth * scale - BlurredImage.ActualWidth) < 1) + { + // Basically the same width, we need to scale up for the height to fit + var newScale = BlurredImage.ActualHeight / (imageHeight * scale); + scale *= newScale; + } + else + { + var newScale = BlurredImage.ActualWidth / (imageWidth * scale); + scale *= newScale; + } + + yOffset = (BlurredImage.ActualHeight - imageHeight * scale) / 2.0; + xOffset = (BlurredImage.ActualWidth - imageWidth * scale) / 2.0; + + args.DrawingSession.DrawImage(_blurEffect, + new Rect(xOffset, yOffset, imageWidth * scale, imageHeight * scale), + _altBackBitmap.Bounds); + } + } + private void BlurredImage_CreateResources(CanvasControl sender, CanvasCreateResourcesEventArgs args) { args.TrackAsyncAction(CreateResourcesAsync(sender).AsAsyncAction()); @@ -177,12 +234,21 @@ private async Task CreateResourcesAsync(CanvasControl sender) { #if !EFCOREHACK _backgroundBitmap = - await CanvasBitmap.LoadAsync(sender, ((BitmapImage) BackgroundImageSource).UriSource); + await CanvasBitmap.LoadAsync(sender, ((BitmapImage)BackgroundImageSource).UriSource); _blurEffect = new GaussianBlurEffect { Source = _backgroundBitmap, BlurAmount = BlurFactor }; + + _altBackBitmap = + await CanvasBitmap.LoadAsync(sender, ((BitmapImage)BackgroundImageSource).UriSource); + + _altBlurEffect = new GaussianBlurEffect + { + Source = _altBackBitmap, + BlurAmount = BlurFactor + }; #endif } } diff --git a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml index 28ca3d1..89d4fa4 100644 --- a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Controls/EatsControl.xaml @@ -10,56 +10,190 @@ mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + - - - - - - - + + + + + + + + + + + + + - @@ -75,7 +209,9 @@ Height="135" Width="135" Margin="4"/> - + --> + + + + + Always diff --git a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml index 921c7dd..247d11e 100644 --- a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Styles/Styles.xaml @@ -5,10 +5,10 @@ xmlns:controls="using:Microsoft.Labs.SightsToSee.Controls"> - #D1D3D4 - #545455 + #2DA092 + #FFFFFF - #434A4F + #E6E6E6 #2DA092 #2DA092 #2D6B67 @@ -35,7 +35,7 @@ - + @@ -523,6 +523,222 @@ + + + + + + @@ -699,7 +915,6 @@ - @@ -1786,14 +2001,236 @@ - + + + + + + + 0 720 1200 - + + + 0 diff --git a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs index 70dd803..cdc0a80 100644 --- a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs +++ b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/EatsControlViewModel.cs @@ -1,8 +1,10 @@ using System.Collections.ObjectModel; using Windows.Devices.Geolocation; +using System.Linq; using Microsoft.Labs.SightsToSee.Library.Models; using Microsoft.Labs.SightsToSee.Models; using Microsoft.Labs.SightsToSee.Mvvm; +using System.Collections.Generic; namespace Microsoft.Labs.SightsToSee.Views { @@ -10,6 +12,7 @@ public class EatsControlViewModel : ViewModelBase { private Geopoint _centerLocation; private ObservableCollection _eats; + private ObservableCollection _eatsGroups; private bool _isDisplayingSightEats; private bool _isLoadingEats; @@ -24,7 +27,17 @@ public bool IsLoadingEats public ObservableCollection Eats { get { return _eats; } - set { Set(ref _eats, value); } + set + { + Set(ref _eats, value); + BuildEatGroups(); + } + } + + public ObservableCollection EatGroups + { + get { return _eatsGroups; } + set { Set(ref _eatsGroups, value); } } public Geopoint CenterLocation @@ -43,5 +56,24 @@ public bool IsDisplayingSightEats public Trip Trip { get; set; } public string Title => IsDisplayingSightEats ? $"Here are the nearest restaurants to {Sight.Name}" : $"Here are restaurants in {Trip.Name}"; + + private void BuildEatGroups() + { + + Restaurant r = new Restaurant(); + + var grouped = from eat in Eats + group eat by eat.CulinaryStyle + into grp + orderby grp.Key ascending + select new EatsGroup + { + GroupName = grp.Key, + ListOfEats = grp.ToList() + }; + + EatGroups = new ObservableCollection(grouped.ToList()); + } } -} \ No newline at end of file +} + diff --git a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml index ca23795..95961f0 100644 --- a/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml +++ b/Workshop/Module1-AdaptiveUI/Source/Begin/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/SightDetailPage.xaml @@ -74,12 +74,21 @@ - - - + + - + + + + + + + + + + + @@ -92,13 +101,16 @@ + + - + + @@ -113,13 +125,14 @@ + + - - + @@ -128,14 +141,14 @@ - - - - + + + + @@ -157,71 +170,38 @@ BackgroundImageSource="{x:Bind ViewModel.SightImage, Mode=OneWay}" /> - - - - - - - - - - - - - - - - - - - - - + + - - - + + Grid.Row="1" + Margin="0,12,0,0"> - + + x:Name="Column0Content" + HorizontalAlignment="Left" + RelativePanel.Below="Column1Content"> - + Style="{ThemeResource CaptionTextBlockStyle}" + Text="{x:Bind ViewModel.CurrentSight.LongDescription, Mode=OneWay}" + Margin="0,0,0,36" /> + @@ -233,23 +213,26 @@ Notes - + - + + - + + HorizontalAlignment="Left" + RelativePanel.AlignTopWithPanel="True" + > @@ -257,14 +240,14 @@ + HorizontalAlignment="Left"> @@ -301,7 +284,7 @@ - + + + + + + + + + + + + + + + + + + + - + + + + + + + - + + + + + + + - + + + + - - - - + + + + @@ -209,7 +225,7 @@ - + diff --git a/Workshop/Module1-AdaptiveUI/Source/Setup/scripts/snippets/AdaptiveUI.vsi b/Workshop/Module1-AdaptiveUI/Source/Setup/scripts/snippets/AdaptiveUI.vsi index f7d80da7b4197e66143845bbcde7b670af61e270..af6d07e0a30dbf9240102563020668acab3737e6 100644 GIT binary patch delta 2040 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 Gg?|B - - + @@ -104,9 +103,7 @@ - - - + @@ -119,8 +116,7 @@ - - + @@ -142,7 +138,6 @@ - @@ -164,7 +159,7 @@ - + @@ -191,8 +186,6 @@ - - diff --git a/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml b/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml index 04c27bc..9674d36 100644 --- a/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml +++ b/Workshop/Module3-ConnectedApps/Source/End/Microsoft.Labs.SightsToSee/Microsoft.Labs.SightsToSee/Views/TripDetailPage.xaml @@ -175,23 +175,6 @@ - -