diff --git a/MUXControlsInnerLoop.sln b/MUXControlsInnerLoop.sln
index a70b9742e6..b707e68631 100644
--- a/MUXControlsInnerLoop.sln
+++ b/MUXControlsInnerLoop.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29009.5
@@ -342,6 +342,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TabView", "TabView", "{B3E6
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TabView", "dev\TabView\TabView.vcxitems", "{B9F81FEF-1E8D-4FE1-A46B-7002D4C109D2}"
EndProject
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "TabView_APITests", "dev\TabView\APITests\TabView_APITests.shproj", "{2F4E95E9-F729-481C-B9AA-C9BEC91AE395}"
+EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "TabView_InteractionTests", "dev\TabView\InteractionTests\TabView_InteractionTests.shproj", "{D1E297B4-5E5B-4807-8624-4141C817A98A}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "TabView_TestUI", "dev\TabView\TestUI\TabView_TestUI.shproj", "{1D87AAC7-1E11-40FC-90A7-B6CE1C4567AE}"
@@ -533,6 +535,7 @@ Global
dev\SplitButton\TestUI\SplitButton_TestUI.projitems*{280c91f4-96b5-4bde-9e02-e573e1def583}*SharedItemsImports = 13
dev\Repeater\TestUI\Repeater_TestUI.projitems*{2ed883f5-20db-4445-8c96-517a21e5e657}*SharedItemsImports = 13
dev\MenuFlyout\TestUI\MenuFlyout_TestUI.projitems*{2ef860e2-8766-41fc-bde2-e6b18bb8c206}*SharedItemsImports = 13
+ dev\TabView\APITests\TabView_APITests.projitems*{2f4e95e9-f729-481c-b9aa-c9bec91ae395}*SharedItemsImports = 13
dev\ParallaxView\ParallaxView.vcxitems*{3095445a-afcd-5154-ac36-9770e6ec1aa5}*SharedItemsImports = 9
dev\InfoBar\TestUI\InfoBar_TestUI.projitems*{32dfaf1e-c2ec-4c52-a4d8-b3a3946242b4}*SharedItemsImports = 13
dev\RadioMenuFlyoutItem\RadioMenuFlyoutItem.vcxitems*{3353a4a7-87b3-4e43-8f8d-43c7380d1d56}*SharedItemsImports = 9
@@ -618,14 +621,10 @@ Global
dev\Common\Common.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
dev\DropDownButton\DropDownButton.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
dev\Effects\Microsoft.UI.Composition.Effects.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
- dev\Expander\Expander.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
dev\IconSource\IconSource.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
- dev\InfoBar\InfoBar.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
dev\Lights\Lights.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
dev\Materials\Acrylic\AcrylicBrush.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
dev\Materials\Reveal\RevealBrush.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
- dev\NumberBox\NumberBox.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
- dev\Repeater\Repeater.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
dev\ResourceHelper\ResourceHelper.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
dev\SplitButton\SplitButton.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
dev\Telemetry\Telemetry.vcxitems*{ad0c90b0-4845-4d4b-88f1-86f653f8171b}*SharedItemsImports = 4
@@ -667,10 +666,6 @@ Global
dev\TreeView\APITests\TreeView_APITests.projitems*{de885c66-929c-464e-bac4-3e076ec46483}*SharedItemsImports = 13
dev\Pivot\TestUI\Pivot_TestUI.projitems*{deb3fa60-e4a7-4735-89f2-363c7c56b428}*SharedItemsImports = 13
dev\CommonManaged\CommonManaged.projitems*{dedc1e4f-cfa5-4443-83eb-e79d425df7e7}*SharedItemsImports = 4
- dev\Expander\TestUI\Expander_TestUI.projitems*{dedc1e4f-cfa5-4443-83eb-e79d425df7e7}*SharedItemsImports = 4
- dev\InfoBar\TestUI\InfoBar_TestUI.projitems*{dedc1e4f-cfa5-4443-83eb-e79d425df7e7}*SharedItemsImports = 4
- dev\NumberBox\APITests\NumberBox_APITests.projitems*{dedc1e4f-cfa5-4443-83eb-e79d425df7e7}*SharedItemsImports = 4
- dev\NumberBox\TestUI\NumberBox_TestUI.projitems*{dedc1e4f-cfa5-4443-83eb-e79d425df7e7}*SharedItemsImports = 4
test\TestAppUtils\TestAppUtils.projitems*{dedc1e4f-cfa5-4443-83eb-e79d425df7e7}*SharedItemsImports = 4
dev\SplitButton\InteractionTests\SplitButton_InteractionTests.projitems*{e1c861e2-c4d9-41e1-aed7-5e203451bd4d}*SharedItemsImports = 13
dev\DatePicker\TestUI\DatePicker_TestUI.projitems*{e20f725c-3a53-463b-ada9-ff2088aaca4d}*SharedItemsImports = 13
@@ -688,10 +683,6 @@ Global
dev\Materials\Acrylic\InteractionTests\AcrylicBrush_InteractionTests.projitems*{f601284a-00c1-49f9-99b3-70d45585f784}*SharedItemsImports = 13
dev\SplitButton\SplitButton.vcxitems*{faf114dd-af1f-4d9f-a511-354c19912aad}*SharedItemsImports = 9
dev\CommonManaged\CommonManaged.projitems*{fbc396f5-26dd-4ca3-981e-c7bc9fea4546}*SharedItemsImports = 4
- dev\Expander\TestUI\Expander_TestUI.projitems*{fbc396f5-26dd-4ca3-981e-c7bc9fea4546}*SharedItemsImports = 4
- dev\InfoBar\TestUI\InfoBar_TestUI.projitems*{fbc396f5-26dd-4ca3-981e-c7bc9fea4546}*SharedItemsImports = 4
- dev\NumberBox\APITests\NumberBox_APITests.projitems*{fbc396f5-26dd-4ca3-981e-c7bc9fea4546}*SharedItemsImports = 4
- dev\NumberBox\TestUI\NumberBox_TestUI.projitems*{fbc396f5-26dd-4ca3-981e-c7bc9fea4546}*SharedItemsImports = 4
test\TestAppUtils\TestAppUtils.projitems*{fbc396f5-26dd-4ca3-981e-c7bc9fea4546}*SharedItemsImports = 4
dev\Slider\Slider.vcxitems*{fc2178ca-7f72-40f0-916c-a2b3750bbb6c}*SharedItemsImports = 9
dev\LayoutPanel\LayoutPanel.vcxitems*{fd3c1a00-0d07-4849-a3b9-646f0ff21d7b}*SharedItemsImports = 9
@@ -1081,6 +1072,7 @@ Global
{BA914F48-E924-4FD2-AEE1-264F67DB6C9F} = {807E57C8-F3E8-4049-AB88-BE3D3285B441}
{B3E64837-A5E4-49CB-97FF-A365307B9191} = {67599AD5-51EC-44CB-85CE-B60CD8CBA270}
{B9F81FEF-1E8D-4FE1-A46B-7002D4C109D2} = {B3E64837-A5E4-49CB-97FF-A365307B9191}
+ {2F4E95E9-F729-481C-B9AA-C9BEC91AE395} = {B3E64837-A5E4-49CB-97FF-A365307B9191}
{D1E297B4-5E5B-4807-8624-4141C817A98A} = {B3E64837-A5E4-49CB-97FF-A365307B9191}
{1D87AAC7-1E11-40FC-90A7-B6CE1C4567AE} = {B3E64837-A5E4-49CB-97FF-A365307B9191}
{CFAFD6A7-FC7B-4C96-B292-A440C7C65D89} = {67599AD5-51EC-44CB-85CE-B60CD8CBA270}
@@ -1139,19 +1131,15 @@ Global
{990BBC65-1114-435D-B5CC-1EB8AAAD72DD} = {633B8D7A-3207-4BD3-8159-B65710AEA6FF}
{128E6F7A-578C-48DC-BD3F-750EC662C268} = {633B8D7A-3207-4BD3-8159-B65710AEA6FF}
{6F7831A4-48F8-41E8-A573-C567A1223CB5} = {05CB5DBD-A481-4DFF-B1A3-642F049D165C}
- {93FAB536-1139-4FD1-B0BF-97C0C6FAB378} = {67599AD5-51EC-44CB-85CE-B60CD8CBA270}
- {EC3B6F65-32C6-4BC8-8902-EE0B397E2787} = {93FAB536-1139-4FD1-B0BF-97C0C6FAB378}
- {50C1F1D3-20AA-49A8-9E4C-CF4E5811A1D8} = {93FAB536-1139-4FD1-B0BF-97C0C6FAB378}
- {D6DF4AB9-FACC-4E51-8C57-6B1F96919365} = {93FAB536-1139-4FD1-B0BF-97C0C6FAB378}
{E7C2104F-770D-4375-8D3A-D173F222273A} = {67599AD5-51EC-44CB-85CE-B60CD8CBA270}
{AB3261A7-9A8D-4A27-AEA2-3AAC0419C889} = {E7C2104F-770D-4375-8D3A-D173F222273A}
{225C4174-3141-49B8-ADE2-C7D3408D5103} = {E7C2104F-770D-4375-8D3A-D173F222273A}
{4F64C819-664F-436A-BCDB-8AB3019B9DD5} = {E7C2104F-770D-4375-8D3A-D173F222273A}
{CB2352E2-D633-41A3-8CDC-B28731A4C490} = {E7C2104F-770D-4375-8D3A-D173F222273A}
- {0EC260CC-03C7-4790-B16A-43428EBCF5AD} = {67599AD5-51EC-44CB-85CE-B60CD8CBA270}
- {3566798E-9E24-44EF-B89D-2A62AE8F697A} = {0EC260CC-03C7-4790-B16A-43428EBCF5AD}
- {675121BF-CABC-48E7-9C9D-4571BC507406} = {0EC260CC-03C7-4790-B16A-43428EBCF5AD}
- {675373CE-6ACD-4C4B-A009-09A3C9B218E6} = {0EC260CC-03C7-4790-B16A-43428EBCF5AD}
+ {93FAB536-1139-4FD1-B0BF-97C0C6FAB378} = {67599AD5-51EC-44CB-85CE-B60CD8CBA270}
+ {EC3B6F65-32C6-4BC8-8902-EE0B397E2787} = {93FAB536-1139-4FD1-B0BF-97C0C6FAB378}
+ {50C1F1D3-20AA-49A8-9E4C-CF4E5811A1D8} = {93FAB536-1139-4FD1-B0BF-97C0C6FAB378}
+ {D6DF4AB9-FACC-4E51-8C57-6B1F96919365} = {93FAB536-1139-4FD1-B0BF-97C0C6FAB378}
{1AD0CB4F-47F0-432B-8D4F-CE33FA3EB8A9} = {67599AD5-51EC-44CB-85CE-B60CD8CBA270}
{CCC102B7-F5EF-479D-94F1-008D189448B1} = {1AD0CB4F-47F0-432B-8D4F-CE33FA3EB8A9}
{F470A64E-780E-45AA-ABB7-73A8734E51D7} = {1AD0CB4F-47F0-432B-8D4F-CE33FA3EB8A9}
@@ -1160,4 +1148,4 @@ Global
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D93836AB-52D3-4DE2-AE25-23F26F55ECED}
EndGlobalSection
-EndGlobal
\ No newline at end of file
+EndGlobal
diff --git a/build/AzurePipelinesTemplates/MUX-NugetReleaseTest-Job.yml b/build/AzurePipelinesTemplates/MUX-NugetReleaseTest-Job.yml
index 0d1bb8e2e0..406491485b 100644
--- a/build/AzurePipelinesTemplates/MUX-NugetReleaseTest-Job.yml
+++ b/build/AzurePipelinesTemplates/MUX-NugetReleaseTest-Job.yml
@@ -43,7 +43,7 @@ jobs:
nugetConfigPath: test\MUXControlsReleaseTest\nuget.config
packageSaveDirectory: $(Build.SourcesDirectory)\packages\muxreleasetest
artifactDownloadPath: $(Build.SourcesDirectory)\Artifacts
- currentPackageVersion: 2.1.190606001
+ currentPackageVersion: 2.4.3
buildOutputDir: $(Build.SourcesDirectory)\BuildOutput
steps:
diff --git a/dev/CommonStyles/CommonStyles.vcxitems b/dev/CommonStyles/CommonStyles.vcxitems
index fca4fc351e..074d796b71 100644
--- a/dev/CommonStyles/CommonStyles.vcxitems
+++ b/dev/CommonStyles/CommonStyles.vcxitems
@@ -19,6 +19,10 @@
ThemeResources
1
+
+ RS1
+ ThemeResources
+
RS1
ThemeResources
diff --git a/dev/CommonStyles/Deprecated_themeresources.xaml b/dev/CommonStyles/Deprecated_themeresources.xaml
new file mode 100644
index 0000000000..80a70b9fdd
--- /dev/null
+++ b/dev/CommonStyles/Deprecated_themeresources.xaml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/TabView/APITests/TabViewTests.cs b/dev/TabView/APITests/TabViewTests.cs
index 2c0488f9c0..882d8cd1f1 100644
--- a/dev/TabView/APITests/TabViewTests.cs
+++ b/dev/TabView/APITests/TabViewTests.cs
@@ -13,6 +13,7 @@
using Windows.UI.Xaml.Automation.Peers;
using Windows.UI.Xaml.Automation;
using Windows.UI.Xaml.Automation.Provider;
+using Windows.UI.Xaml.Controls;
using System.Collections.ObjectModel;
using Microsoft.UI.Xaml.Controls.Primitives;
@@ -180,32 +181,32 @@ public void VerifyTabViewItemUIABehavior()
IdleSynchronizer.Wait();
- RunOnUIThread.Execute(() =>
- {
- var selectionItemProvider = GetProviderFromTVI(tvi0);
- Verify.IsTrue(selectionItemProvider.IsSelected, "Item should be selected");
+ //RunOnUIThread.Execute(() =>
+ //{
+ // var selectionItemProvider = GetProviderFromTVI(tvi0);
+ // Verify.IsTrue(selectionItemProvider.IsSelected, "Item should be selected");
- selectionItemProvider = GetProviderFromTVI(tvi1);
- Verify.IsFalse(selectionItemProvider.IsSelected, "Item should not be selected");
+ // selectionItemProvider = GetProviderFromTVI(tvi1);
+ // Verify.IsFalse(selectionItemProvider.IsSelected, "Item should not be selected");
- Log.Comment("Change selection through automationpeer");
- selectionItemProvider.Select();
- Verify.IsTrue(selectionItemProvider.IsSelected, "Item should have been selected");
+ // Log.Comment("Change selection through automationpeer");
+ // selectionItemProvider.Select();
+ // Verify.IsTrue(selectionItemProvider.IsSelected, "Item should have been selected");
- selectionItemProvider = GetProviderFromTVI(tvi0);
- Verify.IsFalse(selectionItemProvider.IsSelected, "Item should not be selected anymore");
+ // selectionItemProvider = GetProviderFromTVI(tvi0);
+ // Verify.IsFalse(selectionItemProvider.IsSelected, "Item should not be selected anymore");
- Verify.IsNotNull(selectionItemProvider.SelectionContainer);
- });
+ // Verify.IsNotNull(selectionItemProvider.SelectionContainer);
+ //});
- static ISelectionItemProvider GetProviderFromTVI(TabViewItem item)
- {
- var peer = FrameworkElementAutomationPeer.CreatePeerForElement(item);
- var provider = peer.GetPattern(PatternInterface.SelectionItem)
- as ISelectionItemProvider;
- Verify.IsNotNull(provider);
- return provider;
- }
+ //static ISelectionItemProvider GetProviderFromTVI(TabViewItem item)
+ //{
+ // var peer = FrameworkElementAutomationPeer.CreatePeerForElement(item);
+ // var provider = peer.GetPattern(PatternInterface.SelectionItem)
+ // as ISelectionItemProvider;
+ // Verify.IsNotNull(provider);
+ // return provider;
+ //}
}
[TestMethod]
@@ -228,6 +229,113 @@ public void VerifyTabViewWithoutTabsDoesNotCrash()
});
}
+ [TestMethod]
+ public void TabViewItemBackgroundTest()
+ {
+ TabView tabView = null;
+ TabViewItem tabViewItem1 = null;
+ TabViewItem tabViewItem2 = null;
+ RunOnUIThread.Execute(() =>
+ {
+ tabView = new TabView();
+
+ tabViewItem1 = CreateTabViewItem("Tab1", Symbol.Home);
+ tabViewItem2 = CreateTabViewItem("Tab2", Symbol.Document);
+
+ tabView.TabItems.Add(tabViewItem1);
+ tabView.TabItems.Add(tabViewItem2);
+
+ Content = tabView;
+ });
+
+ IdleSynchronizer.Wait();
+
+ RunOnUIThread.Execute(() =>
+ {
+ // Verify that the TabViewItem we use for background API testing here is unselected
+ Verify.IsFalse(tabViewItem2.IsSelected, "TabViewItem should have been unselected");
+
+ bool testCondition = !IsBrushUsingSolidColor(tabViewItem2.Background, Colors.Blue);
+ Verify.IsTrue(testCondition, "Default TabViewItem background color should have not been [blue]");
+
+ var tabContainer = VisualTreeUtils.FindVisualChildByName(tabViewItem2, "TabContainer") as Grid;
+
+ testCondition = !IsBrushUsingSolidColor(tabContainer.Background, Colors.Blue);
+ Verify.IsTrue(testCondition, "TabViewItem's [TabContainer] background color should have not been [blue]");
+
+ Log.Comment("Set the background color of the TabViewItem to [blue]");
+ tabViewItem2.Background = new SolidColorBrush(Colors.Blue);
+
+ testCondition = IsBrushUsingSolidColor(tabViewItem2.Background, Colors.Blue);
+ Verify.IsTrue(testCondition, "TabViewItem's background color should have been [blue]");
+
+ testCondition = IsBrushUsingSolidColor(tabContainer.Background, Colors.Blue);
+ Verify.IsTrue(testCondition, "TabViewItem's [TabContainer] background color should have been [blue]");
+
+ bool IsBrushUsingSolidColor(Brush brush, Color color)
+ {
+ return brush is SolidColorBrush scBrush && scBrush.Color == color;
+ }
+ });
+ }
+
+ [TestMethod]
+ public void TabViewItemForegroundTest()
+ {
+ TabView tabView = null;
+ TabViewItem tabViewItem1 = null;
+ TabViewItem tabViewItem2 = null;
+ RunOnUIThread.Execute(() =>
+ {
+ tabView = new TabView();
+
+ tabViewItem1 = CreateTabViewItem("Tab1", Symbol.Home);
+ tabViewItem2 = CreateTabViewItem("Tab2", Symbol.Document);
+
+ tabView.TabItems.Add(tabViewItem1);
+ tabView.TabItems.Add(tabViewItem2);
+
+ Content = tabView;
+ });
+
+ IdleSynchronizer.Wait();
+
+ RunOnUIThread.Execute(() =>
+ {
+ // Verify that the TabViewItem we use for foreground API testing here is unselected
+ Verify.IsFalse(tabViewItem2.IsSelected, "TabViewItem should have been unselected");
+
+ bool testCondition = !IsBrushUsingSolidColor(tabViewItem2.Foreground, Colors.Blue);
+ Verify.IsTrue(testCondition, "Default TabViewItem foreground color should have not been [blue]");
+
+ var iconControl = VisualTreeUtils.FindVisualChildByName(tabViewItem2, "IconControl") as ContentControl;
+ var headerPresenter = VisualTreeUtils.FindVisualChildByName(tabViewItem2, "ContentPresenter") as ContentPresenter;
+
+ testCondition = !IsBrushUsingSolidColor(iconControl.Foreground, Colors.Blue);
+ Verify.IsTrue(testCondition, "TabViewItem's [IconControl] foreground color should have not been [blue]");
+
+ testCondition = !IsBrushUsingSolidColor(headerPresenter.Foreground, Colors.Blue);
+ Verify.IsTrue(testCondition, "TabViewItem's [ContentPresenter] foreground color should have not been [blue]");
+
+ Log.Comment("Set the foreground color of the TabViewItem to [blue]");
+ tabViewItem2.Foreground = new SolidColorBrush(Colors.Blue);
+
+ testCondition = IsBrushUsingSolidColor(tabViewItem2.Foreground, Colors.Blue);
+ Verify.IsTrue(testCondition, "TabViewItem's foreground color should have been [blue]");
+
+ testCondition = IsBrushUsingSolidColor(iconControl.Foreground, Colors.Blue);
+ Verify.IsTrue(testCondition, "TabViewItem's [IconControl] foreground color should have been [blue]");
+
+ testCondition = IsBrushUsingSolidColor(headerPresenter.Foreground, Colors.Blue);
+ Verify.IsTrue(testCondition, "TabViewItem's [ContentPresenter] foreground color should have been [blue]");
+
+ bool IsBrushUsingSolidColor(Brush brush, Color color)
+ {
+ return brush is SolidColorBrush scBrush && scBrush.Color == color;
+ }
+ });
+ }
+
private static void VerifyTabWidthVisualStates(TabView tabView, IList