Skip to content

Commit a37c0ef

Browse files
committed
Split AccentAnalyzerSample into multiple samples demonstrating how to use different types of PaletteSelectors as well as using them all together
1 parent acda1c3 commit a37c0ef

15 files changed

+560
-181
lines changed

components/ColorAnalyzer/samples/AccentAnalyzer.md

Lines changed: 0 additions & 21 deletions
This file was deleted.

components/ColorAnalyzer/samples/ColorAnalyzer.Samples.csproj

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,4 @@
1818
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
1919
</Content>
2020
</ItemGroup>
21-
<ItemGroup>
22-
<Folder Include="ContrastHelper\" />
23-
</ItemGroup>
2421
</Project>

components/ColorAnalyzer/samples/ColorPaletteSampler/AccentAnalyzerSample.xaml

Lines changed: 0 additions & 146 deletions
This file was deleted.
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
<!-- 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. -->
2+
<local:ColorPaletteSamplerToolkitSampleBase x:Class="ColorAnalyzerExperiment.Samples.AccentColorSample"
3+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5+
xmlns:behaviors="using:CommunityToolkit.WinUI.Behaviors"
6+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
7+
xmlns:helpers="using:CommunityToolkit.WinUI.Helpers"
8+
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
9+
xmlns:local="using:ColorAnalyzerExperiment.Samples"
10+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
11+
mc:Ignorable="d">
12+
13+
<local:ColorPaletteSamplerToolkitSampleBase.Resources>
14+
<helpers:ColorPaletteSampler x:Name="ColorPaletteSampler"
15+
Source="{x:Bind SampledImage}">
16+
<helpers:AccentColorPaletteSelector x:Name="AccentPalette"
17+
MinColorCount="3" />
18+
</helpers:ColorPaletteSampler>
19+
</local:ColorPaletteSamplerToolkitSampleBase.Resources>
20+
21+
<!--
22+
ConstrastHelper is used in this sample to auto-adjust text Foreground to ensure
23+
readability against dynamic background. This is not the ContrastHelper sample.
24+
(though it is a fantastic example use case for it!)
25+
-->
26+
<Grid Margin="20">
27+
<Grid.ColumnDefinitions>
28+
<ColumnDefinition Width="*" />
29+
<ColumnDefinition Width="*" />
30+
</Grid.ColumnDefinitions>
31+
32+
<StackPanel VerticalAlignment="Center"
33+
MaxHeight="250">
34+
<Image x:Name="SampledImage"
35+
HorizontalAlignment="Center"
36+
Source="{x:Bind SelectedImage, Mode=OneWay}"
37+
Stretch="Uniform">
38+
<interactivity:Interaction.Behaviors>
39+
<interactivity:EventTriggerBehavior EventName="ImageOpened">
40+
<interactivity:CallMethodAction MethodName="UpdatePalette"
41+
TargetObject="{x:Bind ColorPaletteSampler}" />
42+
</interactivity:EventTriggerBehavior>
43+
</interactivity:Interaction.Behaviors>
44+
</Image>
45+
</StackPanel>
46+
47+
<Grid Grid.Column="1"
48+
HorizontalAlignment="Stretch"
49+
VerticalAlignment="Stretch"
50+
MaxHeight="250"
51+
MaxWidth="400"
52+
Margin="20">
53+
<Grid.ColumnDefinitions>
54+
<ColumnDefinition />
55+
<ColumnDefinition />
56+
</Grid.ColumnDefinitions>
57+
<Grid.RowDefinitions>
58+
<RowDefinition/>
59+
<RowDefinition Height="0.6*"/>
60+
<RowDefinition Height="0.4*"/>
61+
</Grid.RowDefinitions>
62+
63+
<!-- Primary Accent Color -->
64+
<Border Grid.ColumnSpan="2"
65+
Margin="4"
66+
Padding="2">
67+
<Border.Background>
68+
<SolidColorBrush Color="{x:Bind AccentPalette.SelectedColors[0], FallbackValue=Transparent, Mode=OneWay}" />
69+
</Border.Background>
70+
<TextBlock helpers:ContrastHelper.Opponent="{x:Bind AccentPalette.SelectedColors[0], FallbackValue=Transparent, Mode=OneWay}"
71+
Text="Primary Accent" />
72+
</Border>
73+
74+
<!-- Secondary Accent Color -->
75+
<Border Grid.Row="1"
76+
Margin="4"
77+
Padding="2">
78+
<Border.Background>
79+
<SolidColorBrush Color="{x:Bind AccentPalette.SelectedColors[1], FallbackValue=Transparent, Mode=OneWay}" />
80+
</Border.Background>
81+
<TextBlock helpers:ContrastHelper.Opponent="{x:Bind AccentPalette.SelectedColors[1], FallbackValue=Transparent, Mode=OneWay}"
82+
Text="Secondary Accent" />
83+
</Border>
84+
85+
<!-- Tertiary Accent Color -->
86+
<Border Grid.Row="1"
87+
Grid.Column="1"
88+
Margin="4"
89+
Padding="2">
90+
<Border.Background>
91+
<SolidColorBrush Color="{x:Bind AccentPalette.SelectedColors[2], FallbackValue=Transparent, Mode=OneWay}" />
92+
</Border.Background>
93+
<TextBlock helpers:ContrastHelper.Opponent="{x:Bind AccentPalette.SelectedColors[2], FallbackValue=Transparent, Mode=OneWay}"
94+
Text="Tertiary Accent" />
95+
</Border>
96+
97+
<!-- Accent Colors Gradient -->
98+
<Rectangle Grid.ColumnSpan="2"
99+
Grid.Row="3"
100+
Margin="4">
101+
<Rectangle.Fill>
102+
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
103+
<GradientStopCollection>
104+
<GradientStop Offset="0" Color="{x:Bind AccentPalette.SelectedColors[0], FallbackValue=Transparent, Mode=OneWay}" />
105+
<GradientStop Offset="0.6" Color="{x:Bind AccentPalette.SelectedColors[1], FallbackValue=Transparent, Mode=OneWay}" />
106+
<GradientStop Offset="1" Color="{x:Bind AccentPalette.SelectedColors[2], FallbackValue=Transparent, Mode=OneWay}" />
107+
</GradientStopCollection>
108+
</LinearGradientBrush>
109+
</Rectangle.Fill>
110+
</Rectangle>
111+
</Grid>
112+
</Grid>
113+
</local:ColorPaletteSamplerToolkitSampleBase>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
namespace ColorAnalyzerExperiment.Samples;
6+
7+
/// <summary>
8+
/// An example sample page of a custom control inheriting from Panel.
9+
/// </summary>
10+
[ToolkitSample(id: nameof(AccentColorSample), "AccentAnalyzer helper", description: $"A sample for showing how the accent analyzer can be used.")]
11+
public sealed partial class AccentColorSample : ColorPaletteSamplerToolkitSampleBase
12+
{
13+
public AccentColorSample()
14+
{
15+
this.InitializeComponent();
16+
}
17+
}

0 commit comments

Comments
 (0)