diff --git a/components/SettingsControls/samples/ContentAlignmentSettingsCardSample.xaml b/components/SettingsControls/samples/ContentAlignmentSettingsCardSample.xaml
new file mode 100644
index 00000000..180f6e08
--- /dev/null
+++ b/components/SettingsControls/samples/ContentAlignmentSettingsCardSample.xaml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 800
+ 600
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 550
+ 0
+
+ 900
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/SettingsControls/samples/ContentAlignmentSettingsCardSample.xaml.cs b/components/SettingsControls/samples/ContentAlignmentSettingsCardSample.xaml.cs
new file mode 100644
index 00000000..4fa3234a
--- /dev/null
+++ b/components/SettingsControls/samples/ContentAlignmentSettingsCardSample.xaml.cs
@@ -0,0 +1,17 @@
+// 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.
+
+namespace SettingsControlsExperiment.Samples;
+
+[ToolkitSampleBoolOption("IsCardEnabled", true, Title = "Is Enabled")]
+
+[ToolkitSample(id: nameof(ContentAlignmentSettingsCardSample), "ContentAlignmentSettingsCardSample", description: "A sample for showing how to use the SettingsCard.ContentAlignment attached property")]
+
+public sealed partial class ContentAlignmentSettingsCardSample : Page
+{
+ public ContentAlignmentSettingsCardSample()
+ {
+ this.InitializeComponent();
+ }
+}
diff --git a/components/SettingsControls/samples/SettingsCard.md b/components/SettingsControls/samples/SettingsCard.md
index 667bc703..cab4d336 100644
--- a/components/SettingsControls/samples/SettingsCard.md
+++ b/components/SettingsControls/samples/SettingsCard.md
@@ -12,11 +12,15 @@ issue-id: 0
icon: Assets/SettingsCard.png
---
-SettingsCard is a control that can be used to display settings in your experience. It uses the default styling found in Windows 11 and is easy to use, meets all accessibility standards and will make your settings page look great!
+`SettingsCard` is a control that can be used to display settings in your experience. It uses the default styling found in Windows 11 and is easy to use, meets all accessibility standards and will make your settings page look great!
You can set the `Header`, `Description`, `HeaderIcon` and `Content` properties to create an easy to use experience, like so:
> [!SAMPLE SettingsCardSample]
-SettingsCard can also be turned into a button, by setting the `IsClickEnabled` property. This can be useful whenever you want your settings component to navigate to a detail page or open an external link. You can set a custom icon by setting the `ActionIcon`, or hiding it completely by setting the `IsActionIconVisible` to `false`.
+`SettingsCard` can also be turned into a button, by setting the `IsClickEnabled` property. This can be useful whenever you want your settings component to navigate to a detail page or open an external link. You can set a custom icon by setting the `ActionIcon`, or hiding it completely by setting the `IsActionIconVisible` to `false`.
> [!SAMPLE ClickableSettingsCardSample]
+
+You can easily override certain properties to create custom experiences. For instance, you can customize the `ContentAlignment` of a `SettingsCard`, to align your content to the Right (default), Left (hiding the `HeaderIcon`, `Header` and `Description`), Vertically (usually best paired with changing the `HorizontalContentAlignment` to `Stretch`) or Horizontally (attaching additional `VisualState` to reverse the Content layout).
+
+> [!SAMPLE ContentAlignmentSettingsCardSample]
diff --git a/components/SettingsControls/samples/SettingsCardSample.xaml b/components/SettingsControls/samples/SettingsCardSample.xaml
index 6e17962d..583bd122 100644
--- a/components/SettingsControls/samples/SettingsCardSample.xaml
+++ b/components/SettingsControls/samples/SettingsCardSample.xaml
@@ -1,4 +1,4 @@
-
+
-
-
- 800
- 600
-
-
-
-
diff --git a/components/SettingsControls/samples/SettingsControls.Samples.csproj b/components/SettingsControls/samples/SettingsControls.Samples.csproj
index 188a0f4d..503d130e 100644
--- a/components/SettingsControls/samples/SettingsControls.Samples.csproj
+++ b/components/SettingsControls/samples/SettingsControls.Samples.csproj
@@ -7,6 +7,10 @@
+
+
+
+
@@ -23,4 +27,9 @@
PreserveNewest
+
+
+ Designer
+
+
diff --git a/components/SettingsControls/samples/SettingsExpander.md b/components/SettingsControls/samples/SettingsExpander.md
index 3fd0566d..e021d516 100644
--- a/components/SettingsControls/samples/SettingsExpander.md
+++ b/components/SettingsControls/samples/SettingsExpander.md
@@ -18,8 +18,6 @@ A `SettingsExpander` can have it's own content to display a setting on the right
> [!SAMPLE SettingsExpanderSample]
-You can easily override certain properties to create custom experiences. For instance, you can customize the `ContentAlignment` of a `SettingsCard`, to align your content to the Right (default), Left (hiding the `HeaderIcon`, `Header` and `Description`) or Vertically (usually best paired with changing the `HorizontalContentAlignment` to `Stretch`).
-
`SettingsExpander` is also an `ItemsControl`, so its items can be driven by a collection and the `ItemsSource` property. You can use the `ItemTemplate` to define how your data object is represented as a `SettingsCard`, as shown below. The `ItemsHeader` and `ItemsFooter` property can be used to host custom content at the start or end of the items list.
> [!SAMPLE SettingsExpanderItemsSourceSample]
diff --git a/components/SettingsControls/samples/SettingsExpanderSample.xaml b/components/SettingsControls/samples/SettingsExpanderSample.xaml
index 7c96fb97..db4c4cab 100644
--- a/components/SettingsControls/samples/SettingsExpanderSample.xaml
+++ b/components/SettingsControls/samples/SettingsExpanderSample.xaml
@@ -26,45 +26,18 @@
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/components/SettingsControls/src/SettingsCard/SettingsCard.Properties.cs b/components/SettingsControls/src/SettingsCard/SettingsCard.Properties.cs
index 6152a04e..8d408a2e 100644
--- a/components/SettingsControls/src/SettingsCard/SettingsCard.Properties.cs
+++ b/components/SettingsControls/src/SettingsCard/SettingsCard.Properties.cs
@@ -190,5 +190,9 @@ public enum ContentAlignment
///
/// The Content is vertically aligned.
///
- Vertical
+ Vertical,
+ ///
+ /// The Content is horizontally aligned.
+ ///
+ Horizontal
}
diff --git a/components/SettingsControls/src/SettingsCard/SettingsCard.cs b/components/SettingsControls/src/SettingsCard/SettingsCard.cs
index 6e1e064b..222d8828 100644
--- a/components/SettingsControls/src/SettingsCard/SettingsCard.cs
+++ b/components/SettingsControls/src/SettingsCard/SettingsCard.cs
@@ -26,6 +26,7 @@ namespace CommunityToolkit.WinUI.Controls;
[TemplateVisualState(Name = RightWrappedNoIconState, GroupName = ContentAlignmentStates)]
[TemplateVisualState(Name = LeftState, GroupName = ContentAlignmentStates)]
[TemplateVisualState(Name = VerticalState, GroupName = ContentAlignmentStates)]
+[TemplateVisualState(Name = HorizontalState, GroupName = ContentAlignmentStates)]
[TemplateVisualState(Name = NoContentSpacingState, GroupName = ContentSpacingStates)]
[TemplateVisualState(Name = ContentSpacingState, GroupName = ContentSpacingStates)]
@@ -44,6 +45,7 @@ public partial class SettingsCard : ButtonBase
internal const string RightWrappedNoIconState = "RightWrappedNoIcon";
internal const string LeftState = "Left";
internal const string VerticalState = "Vertical";
+ internal const string HorizontalState = "Horizontal";
internal const string ContentSpacingStates = "ContentSpacingStates";
internal const string NoContentSpacingState = "NoContentSpacing";
diff --git a/components/SettingsControls/src/SettingsCard/SettingsCard.xaml b/components/SettingsControls/src/SettingsCard/SettingsCard.xaml
index 3d2e4dd3..33e56bcb 100644
--- a/components/SettingsControls/src/SettingsCard/SettingsCard.xaml
+++ b/components/SettingsControls/src/SettingsCard/SettingsCard.xaml
@@ -102,6 +102,8 @@
12200
+ 477
+ 3751202,0,20,014,0,0,0
@@ -198,8 +200,10 @@
-
-
+
+
@@ -359,6 +363,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+