diff --git a/Microsoft.Toolkit.Uwp.SampleApp/App.xaml b/Microsoft.Toolkit.Uwp.SampleApp/App.xaml index f7b74b15f8d..37bc22cada3 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/App.xaml +++ b/Microsoft.Toolkit.Uwp.SampleApp/App.xaml @@ -4,25 +4,25 @@ xmlns:converters="using:Microsoft.Toolkit.Uwp.UI.Converters" RequiresPointerMode="Auto"> - - - - - - + + + + + + - - - + + + - - + + - + - - - + + + \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj b/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj index c7acab21bfa..6b37565291a 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj +++ b/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj @@ -272,6 +272,7 @@ + @@ -515,6 +516,9 @@ FocusBehaviorPage.xaml + + TabbedCommandBarPage.xaml + TilesBrushPage.xaml @@ -1001,6 +1005,14 @@ MSBuild:Compile Designer + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + MSBuild:Compile Designer diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBar.bind b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBar.bind new file mode 100644 index 00000000000..690e3e93bd7 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBar.bind @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBar.png b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBar.png new file mode 100644 index 00000000000..9761391a31c Binary files /dev/null and b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBar.png differ diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBarPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBarPage.xaml new file mode 100644 index 00000000000..43c51189031 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBarPage.xaml @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBarPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBarPage.xaml.cs new file mode 100644 index 00000000000..77e088b3dc4 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/TabbedCommandBar/TabbedCommandBarPage.xaml.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238 + +namespace Microsoft.Toolkit.Uwp.SampleApp.SamplePages +{ + /// + /// An empty page that can be used on its own or navigated to within a Frame. + /// + public sealed partial class TabbedCommandBarPage : Page + { + public TabbedCommandBarPage() + { + this.InitializeComponent(); + } + } +} diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json index 1a5c5303b40..4eabf24be86 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json @@ -433,6 +433,16 @@ "XamlCodeFile": "TokenizingTextBoxXaml.bind", "Icon": "/SamplePages/TokenizingTextBox/TokenizingTextBox.png", "DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/TokenizingTextBox.md" + }, + { + "Name": "TabbedCommandBar", + "Type": "TabbedCommandBarPage", + "Subcategory": "Layout", + "About": "A control for displaying multiple CommandBars in the same space, like Microsoft Office's ribbon.", + "CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/master/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar", + "XamlCodeFile": "TabbedCommandBar.bind", + "Icon": "/SamplePages/TabbedCommandBar/TabbedCommandBar.png", + "DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/controls/TabbedCommandBar.md" } ] }, diff --git a/Microsoft.Toolkit.Uwp.UI.Controls.Design/Microsoft.Toolkit.Uwp.UI.Controls.Design.csproj b/Microsoft.Toolkit.Uwp.UI.Controls.Design/Microsoft.Toolkit.Uwp.UI.Controls.Design.csproj index 1201d323388..ada3759c203 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls.Design/Microsoft.Toolkit.Uwp.UI.Controls.Design.csproj +++ b/Microsoft.Toolkit.Uwp.UI.Controls.Design/Microsoft.Toolkit.Uwp.UI.Controls.Design.csproj @@ -122,6 +122,7 @@ + diff --git a/Microsoft.Toolkit.Uwp.UI.Controls.Design/TabbedCommandBarMetadata.cs b/Microsoft.Toolkit.Uwp.UI.Controls.Design/TabbedCommandBarMetadata.cs new file mode 100644 index 00000000000..44a2343c54b --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls.Design/TabbedCommandBarMetadata.cs @@ -0,0 +1,33 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Microsoft.Windows.Design.Metadata; +using Microsoft.Windows.Design.PropertyEditing; +using System.ComponentModel; + +namespace Microsoft.Toolkit.Uwp.UI.Controls.Design +{ + internal class TabbedCommandBarMetadata : AttributeTableBuilder + { + public TabbedCommandBarMetadata() + : base() + { + AddCallback(typeof(TabbedCommandBar), + b => + { + b.AddCustomAttributes(nameof(TabbedCommandBar.Items), + new PropertyOrderAttribute(PropertyOrder.Early), + new CategoryAttribute(Properties.Resources.CategoryCommon), + //The following is necessary because this is a collection of an abstract type, so we help + //the designer with populating supported types that can be added to the collection + new NewItemTypesAttribute(new System.Type[] { + typeof(TabbedCommandBarItem), + }), + new AlternateContentPropertyAttribute() + ); + } + ); + } + } +} diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/Microsoft.Toolkit.Uwp.UI.Controls.csproj b/Microsoft.Toolkit.Uwp.UI.Controls/Microsoft.Toolkit.Uwp.UI.Controls.csproj index 6258250a2f0..e66525ff1e6 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/Microsoft.Toolkit.Uwp.UI.Controls.csproj +++ b/Microsoft.Toolkit.Uwp.UI.Controls/Microsoft.Toolkit.Uwp.UI.Controls.csproj @@ -71,6 +71,9 @@ Designer + + MSBuild:Compile + MSBuild:Compile diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBar.cs b/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBar.cs new file mode 100644 index 00000000000..a1284f4ea78 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBar.cs @@ -0,0 +1,117 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using System.Linq; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Markup; +using Windows.UI.Xaml.Media.Animation; + +namespace Microsoft.Toolkit.Uwp.UI.Controls +{ + /// + /// A basic ribbon control that houses s + /// + [ContentProperty(Name = nameof(Items))] + [TemplatePart(Name = "PART_RibbonNavigationView", Type = typeof(NavigationView))] + [TemplatePart(Name = "PART_RibbonContent", Type = typeof(ContentControl))] + [TemplatePart(Name = "PART_TabChangedStoryboard", Type = typeof(Storyboard))] + public class TabbedCommandBar : Control + { + private NavigationView _ribbonNavigationView = null; + private ContentControl _ribbonContent = null; + private Storyboard _tabChangedStoryboard = null; + + // This should probably be made public at some point + private TabbedCommandBarItem SelectedTab { get; set; } + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty ItemsProperty = DependencyProperty.Register( + nameof(Items), + typeof(IList), + typeof(TabbedCommandBar), + new PropertyMetadata(new List())); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty FooterProperty = DependencyProperty.Register( + nameof(Footer), + typeof(UIElement), + typeof(TabbedCommandBar), + new PropertyMetadata(new Border())); + + // I would prefer this be an IList, but Intellisense really doesn't like that. + /// + /// Gets or sets A list of s to display in this . + /// + public IList Items + { + get { return (IList)GetValue(ItemsProperty); } + set { SetValue(ItemsProperty, value); } + } + + /// + /// Gets or sets the to be displayed in the footer of the ribbon tab strip. + /// + public UIElement Footer + { + get { return (UIElement)GetValue(FooterProperty); } + set { SetValue(FooterProperty, value); } + } + + /// + /// Initializes a new instance of the class. + /// + public TabbedCommandBar() + { + DefaultStyleKey = typeof(TabbedCommandBar); + } + + /// + protected override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + // Get RibbonContent first, since setting SelectedItem requires it + _ribbonContent = GetTemplateChild("PART_RibbonContent") as ContentControl; + + _ribbonNavigationView = GetTemplateChild("PART_RibbonNavigationView") as NavigationView; + if (_ribbonNavigationView != null) + { + // Populate the NavigationView with items + // TODO: Get binding working, necessary for contextual tabs + _ribbonNavigationView.MenuItems.Clear(); + foreach (TabbedCommandBarItem item in Items) + { + _ribbonNavigationView.MenuItems.Add(item); + } + _ribbonNavigationView.PaneFooter = Footer; + + _ribbonNavigationView.SelectionChanged += RibbonNavigationView_SelectionChanged; + _ribbonNavigationView.SelectedItem = _ribbonNavigationView.MenuItems.FirstOrDefault(); + } + + _tabChangedStoryboard = GetTemplateChild(nameof(_tabChangedStoryboard)) as Storyboard; + } + + private void RibbonNavigationView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args) + { + if (args.SelectedItem is TabbedCommandBarItem item) + { + _ribbonContent.Content = item; + _tabChangedStoryboard?.Begin(); + } + else if (args.SelectedItem is NavigationViewItem navItem) + { + // This code is a hack and is only temporary, because I can't get binding to work. + // RibbonContent might be null here, there should be a check + _ribbonContent.Content = Items[System.Math.Min(Items.Count - 1, _ribbonNavigationView.MenuItems.IndexOf(navItem))]; + } + } + } +} \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBar.xaml b/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBar.xaml new file mode 100644 index 00000000000..ba203b27af1 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBar.xaml @@ -0,0 +1,964 @@ + + + + + + + + + --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBarItem.cs b/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBarItem.cs new file mode 100644 index 00000000000..9d53cb88861 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBarItem.cs @@ -0,0 +1,100 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; + +namespace Microsoft.Toolkit.Uwp.UI.Controls +{ + /// + /// A to be displayed in a + /// + [TemplatePart(Name = "PrimaryItemsControl", Type = typeof(ItemsControl))] + [TemplatePart(Name = "MoreButton", Type = typeof(Button))] + public class TabbedCommandBarItem : CommandBar + { + private ItemsControl _primaryItemsControl; + private Button _moreButton; + + /// + /// Initializes a new instance of the class. + /// + public TabbedCommandBarItem() + { + DefaultStyleKey = typeof(TabbedCommandBarItem); + } + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register( + nameof(Header), + typeof(string), + typeof(TabbedCommandBarItem), + new PropertyMetadata("Test")); + + /// + /// Gets or sets the title of this ribbon tab. + /// + public string Header + { + get => (string)GetValue(HeaderProperty); + set => SetValue(HeaderProperty, value); + } + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty FooterProperty = DependencyProperty.Register( + nameof(Footer), + typeof(UIElement), + typeof(TabbedCommandBarItem), + new PropertyMetadata(new Border())); + + /// + /// Identifies the property. + /// + public static readonly DependencyProperty IsContextualProperty = DependencyProperty.Register( + nameof(IsContextual), + typeof(bool), + typeof(TabbedCommandBarItem), + new PropertyMetadata(false)); + + /// + /// Gets or sets the to be displayed in the footer of the tab. + /// + public UIElement Footer + { + get => (UIElement)GetValue(FooterProperty); + set => SetValue(FooterProperty, value); + } + + /// + /// Gets or sets a value indicating whether this tab is contextual. + /// + public bool IsContextual + { + get => (bool)GetValue(IsContextualProperty); + set => SetValue(IsContextualProperty, value); + } + + /// + protected override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + _primaryItemsControl = GetTemplateChild("PrimaryItemsControl") as ItemsControl; + if (_primaryItemsControl != null) + { + _primaryItemsControl.HorizontalAlignment = HorizontalAlignment.Left; + } + + _moreButton = GetTemplateChild("MoreButton") as Button; + if (_moreButton != null) + { + _moreButton.HorizontalAlignment = HorizontalAlignment.Right; + } + } + } +} \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBarItemTemplateSelector.cs b/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBarItemTemplateSelector.cs new file mode 100644 index 00000000000..06712d3c65b --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI.Controls/TabbedCommandBar/TabbedCommandBarItemTemplateSelector.cs @@ -0,0 +1,37 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; + +namespace Microsoft.Toolkit.Uwp.UI.Controls +{ + /// + /// used by for determining the style of normal vs. contextual s. + /// + public class TabbedCommandBarItemTemplateSelector : DataTemplateSelector + { + /// + /// Gets or sets the of a normal . + /// + public DataTemplate Normal { get; set; } + + /// + /// Gets or sets the of a contextual . + /// + public DataTemplate Contextual { get; set; } + + /// + protected override DataTemplate SelectTemplateCore(object item) + { + return ((TabbedCommandBarItem)item).IsContextual ? Contextual : Normal; + } + + /// + protected override DataTemplate SelectTemplateCore(object item, DependencyObject container) + { + return SelectTemplateCore(item); + } + } +} \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/Themes/Generic.xaml b/Microsoft.Toolkit.Uwp.UI.Controls/Themes/Generic.xaml index 8354174809c..e30898a6a9f 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/Themes/Generic.xaml +++ b/Microsoft.Toolkit.Uwp.UI.Controls/Themes/Generic.xaml @@ -29,6 +29,7 @@ + diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/VisualStudioToolsManifest.xml b/Microsoft.Toolkit.Uwp.UI.Controls/VisualStudioToolsManifest.xml index b952e2ec958..479fe150be9 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/VisualStudioToolsManifest.xml +++ b/Microsoft.Toolkit.Uwp.UI.Controls/VisualStudioToolsManifest.xml @@ -31,6 +31,7 @@ + diff --git a/Windows Community Toolkit.sln b/Windows Community Toolkit.sln index dbb8ef27886..cd5dc10041a 100644 --- a/Windows Community Toolkit.sln +++ b/Windows Community Toolkit.sln @@ -569,34 +569,6 @@ Global {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|x64.Build.0 = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|x86.ActiveCfg = Release|Any CPU {42CA4935-54BE-42EA-AC19-992378C08DE6}.Release|x86.Build.0 = Release|Any CPU - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|Any CPU.Build.0 = Debug|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|ARM.ActiveCfg = Debug|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|ARM.Build.0 = Debug|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|ARM64.Build.0 = Debug|ARM64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|x64.ActiveCfg = Debug|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|x64.Build.0 = Debug|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|x86.ActiveCfg = Debug|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Debug|x86.Build.0 = Debug|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|Any CPU.ActiveCfg = Release|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|ARM.ActiveCfg = Release|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|ARM.Build.0 = Release|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|ARM64.ActiveCfg = Release|ARM64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|ARM64.Build.0 = Release|ARM64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|x64.ActiveCfg = Release|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|x64.Build.0 = Release|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|x86.ActiveCfg = Release|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Native|x86.Build.0 = Release|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|Any CPU.ActiveCfg = Release|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|ARM.ActiveCfg = Release|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|ARM.Build.0 = Release|ARM - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|ARM64.ActiveCfg = Release|ARM64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|ARM64.Build.0 = Release|ARM64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|x64.ActiveCfg = Release|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|x64.Build.0 = Release|x64 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|x86.ActiveCfg = Release|Win32 - {A5E98964-45B1-442D-A07A-298A3221D81E}.Release|x86.Build.0 = Release|Win32 {5BF75694-798A-43A0-8150-415DE195359C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5BF75694-798A-43A0-8150-415DE195359C}.Debug|Any CPU.Build.0 = Debug|Any CPU {5BF75694-798A-43A0-8150-415DE195359C}.Debug|ARM.ActiveCfg = Debug|Any CPU @@ -904,11 +876,6 @@ Global {05C83067-FA46-45E2-BEC4-EDEE84AD18D0}.Debug|x86.ActiveCfg = Debug|x86 {05C83067-FA46-45E2-BEC4-EDEE84AD18D0}.Debug|x86.Build.0 = Debug|x86 {05C83067-FA46-45E2-BEC4-EDEE84AD18D0}.Debug|x86.Deploy.0 = Debug|x86 - {05C83067-FA46-45E2-BEC4-EDEE84AD18D0}.Native|Any CPU.ActiveCfg = Release|x64 - {05C83067-FA46-45E2-BEC4-EDEE84AD18D0}.Native|ARM.ActiveCfg = Release|ARM - {05C83067-FA46-45E2-BEC4-EDEE84AD18D0}.Native|ARM64.ActiveCfg = Release|ARM64 - {05C83067-FA46-45E2-BEC4-EDEE84AD18D0}.Native|x64.ActiveCfg = Release|x64 - {05C83067-FA46-45E2-BEC4-EDEE84AD18D0}.Native|x86.ActiveCfg = Release|x86 {05C83067-FA46-45E2-BEC4-EDEE84AD18D0}.Release|Any CPU.ActiveCfg = Release|x86 {05C83067-FA46-45E2-BEC4-EDEE84AD18D0}.Release|Any CPU.Build.0 = Release|x86 {05C83067-FA46-45E2-BEC4-EDEE84AD18D0}.Release|ARM.ActiveCfg = Release|ARM @@ -933,11 +900,6 @@ Global {5F720475-E263-4A5A-8C88-2B805B45B5BC}.Debug|x64.Build.0 = Debug|Any CPU {5F720475-E263-4A5A-8C88-2B805B45B5BC}.Debug|x86.ActiveCfg = Debug|Any CPU {5F720475-E263-4A5A-8C88-2B805B45B5BC}.Debug|x86.Build.0 = Debug|Any CPU - {5F720475-E263-4A5A-8C88-2B805B45B5BC}.Native|Any CPU.ActiveCfg = Debug|Any CPU - {5F720475-E263-4A5A-8C88-2B805B45B5BC}.Native|ARM.ActiveCfg = Debug|Any CPU - {5F720475-E263-4A5A-8C88-2B805B45B5BC}.Native|ARM64.ActiveCfg = Debug|Any CPU - {5F720475-E263-4A5A-8C88-2B805B45B5BC}.Native|x64.ActiveCfg = Debug|Any CPU - {5F720475-E263-4A5A-8C88-2B805B45B5BC}.Native|x86.ActiveCfg = Debug|Any CPU {5F720475-E263-4A5A-8C88-2B805B45B5BC}.Release|Any CPU.ActiveCfg = Release|Any CPU {5F720475-E263-4A5A-8C88-2B805B45B5BC}.Release|Any CPU.Build.0 = Release|Any CPU {5F720475-E263-4A5A-8C88-2B805B45B5BC}.Release|ARM.ActiveCfg = Release|Any CPU @@ -958,11 +920,6 @@ Global {C8182EF0-77FB-4B43-A588-C71748A309C7}.Debug|x64.Build.0 = Debug|Any CPU {C8182EF0-77FB-4B43-A588-C71748A309C7}.Debug|x86.ActiveCfg = Debug|Any CPU {C8182EF0-77FB-4B43-A588-C71748A309C7}.Debug|x86.Build.0 = Debug|Any CPU - {C8182EF0-77FB-4B43-A588-C71748A309C7}.Native|Any CPU.ActiveCfg = Debug|Any CPU - {C8182EF0-77FB-4B43-A588-C71748A309C7}.Native|ARM.ActiveCfg = Debug|Any CPU - {C8182EF0-77FB-4B43-A588-C71748A309C7}.Native|ARM64.ActiveCfg = Debug|Any CPU - {C8182EF0-77FB-4B43-A588-C71748A309C7}.Native|x64.ActiveCfg = Debug|Any CPU - {C8182EF0-77FB-4B43-A588-C71748A309C7}.Native|x86.ActiveCfg = Debug|Any CPU {C8182EF0-77FB-4B43-A588-C71748A309C7}.Release|Any CPU.ActiveCfg = Release|Any CPU {C8182EF0-77FB-4B43-A588-C71748A309C7}.Release|Any CPU.Build.0 = Release|Any CPU {C8182EF0-77FB-4B43-A588-C71748A309C7}.Release|ARM.ActiveCfg = Release|Any CPU