Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add lightweight extension #838

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Settings.XamlStyler
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"KeepFirstAttributeOnSameLine": true,
"MaxAttributeCharactersPerLine": 0,
"MaxAttributesPerLine": 1,
"NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter, StaticResource",
"NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter, StaticResource, SolidColorBrush",
"SeparateByGroups": false,
"AttributeIndentation": 0,
"AttributeIndentationStyle": 0,
Expand Down
38 changes: 38 additions & 0 deletions Uno.Gallery/Uno.Gallery.Shared/Extensions/ResourceExtensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
using Microsoft.UI.Xaml;
using System;

namespace Uno.Gallery
{
/// <summary>
/// Helper class for Resources Extensions.
/// </summary>
public static class ResourceExtensions
{
public static readonly DependencyProperty OverridePathProperty =
DependencyProperty.RegisterAttached(
"OverridePath",
typeof(string),
typeof(ResourceExtensions),
new PropertyMetadata(null, OnOverridePathChanged));

public static void SetOverridePath(FrameworkElement element, string value)
{
element.SetValue(OverridePathProperty, value);
}

public static string GetOverridePath(FrameworkElement element)
{
return (string)element.GetValue(OverridePathProperty);
}

private static void OnOverridePathChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (d is FrameworkElement fe)
{
fe.Resources = e.NewValue is string path
? new ResourceDictionary() { Source = new Uri(path, UriKind.RelativeOrAbsolute) }
: default;
}
}
}
}
33 changes: 33 additions & 0 deletions Uno.Gallery/Uno.Gallery.Shared/Uno.Gallery.Shared.projitems
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@
<Compile Include="$(MSBuildThisFileDirectory)Entities\Design.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Entities\SourceSdk.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Extensions\ClipboardExtensions.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Extensions\ResourceExtensions.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Extensions\XamlDisplayExtensions.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\Disposable.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\EnumHelper.cs" />
Expand All @@ -186,6 +187,38 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</ApplicationDefinition>
<Page Include="$(MSBuildThisFileDirectory)Views\ControlResourcesOverride\Fluent\Button.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Views\ControlResourcesOverride\Fluent\CheckBox.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Views\ControlResourcesOverride\Fluent\RadioButton.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Views\ControlResourcesOverride\Fluent\TextBox.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Views\ControlResourcesOverride\Material\Button.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Views\ControlResourcesOverride\Material\CheckBox.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Views\ControlResourcesOverride\Material\RadioButton.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Views\ControlResourcesOverride\Material\TextBox.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<_Globbled_Page Include="$(MSBuildThisFileDirectory)**/*.xaml" Exclude="@(Page);@(ApplicationDefinition)">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<SolidColorBrush x:Key="ButtonForeground" Color="DarkGreen" />
<SolidColorBrush x:Key="ButtonBackground" Color="LightGreen" />
<SolidColorBrush x:Key="ButtonBorderBrush" Color="DarkGreen" />

<SolidColorBrush x:Key="ButtonForegroundPointerOver" Color="DarkRed" />
<SolidColorBrush x:Key="ButtonBackgroundPointerOver" Color="LightPink" />
<SolidColorBrush x:Key="ButtonBorderBrushPointerOver" Color="DarkRed" />

<SolidColorBrush x:Key="ButtonForegroundPressed" Color="DarkBlue" />
<SolidColorBrush x:Key="ButtonBackgroundPressed" Color="LightSteelBlue" />
<SolidColorBrush x:Key="ButtonBorderBrushPressed" Color="DarkBlue" />

<SolidColorBrush x:Key="ButtonForegroundDisabled" Color="LightSlateGray" />
<SolidColorBrush x:Key="ButtonBackgroundDisabled" Color="DarkGray" />
<SolidColorBrush x:Key="ButtonBorderBrushDisabled" Color="LightSlateGray" />
</ResourceDictionary>
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<!-- Checked state -->
<SolidColorBrush x:Key="CheckBoxCheckGlyphForegroundChecked" Color="Teal" />
<SolidColorBrush x:Key="CheckBoxBorderBrushChecked" Color="Navy" />
<SolidColorBrush x:Key="CheckBoxBackgroundChecked" Color="Maroon" />

<!-- Checked and pointer over state -->
<SolidColorBrush x:Key="CheckBoxCheckGlyphForegroundCheckedPointerOver" Color="Lime" />
<SolidColorBrush x:Key="CheckBoxBorderBrushCheckedPointerOver" Color="Olive" />
<SolidColorBrush x:Key="CheckBoxBackgroundCheckedPointerOver" Color="Silver" />

<!-- Checked and pressed state -->
<SolidColorBrush x:Key="CheckBoxCheckGlyphForegroundCheckedPressed" Color="Purple" />
<SolidColorBrush x:Key="CheckBoxBorderBrushCheckedPressed" Color="Aqua" />
<SolidColorBrush x:Key="CheckBoxBackgroundCheckedPressed" Color="Yellow" />

<!-- Unchecked state -->
<SolidColorBrush x:Key="CheckBoxCheckGlyphForegroundUnchecked" Color="Black" />
<SolidColorBrush x:Key="CheckBoxBorderBrushUnchecked" Color="White" />
<SolidColorBrush x:Key="CheckBoxBackgroundUnchecked" Color="Gray" />

<!-- Unchecked and pointer over state -->
<SolidColorBrush x:Key="CheckBoxCheckGlyphForegroundUncheckedPointerOver" Color="Blue" />
<SolidColorBrush x:Key="CheckBoxBorderBrushUncheckedPointerOver" Color="Orange" />
<SolidColorBrush x:Key="CheckBoxBackgroundUncheckedPointerOver" Color="Green" />

<!-- Unchecked and pressed state -->
<SolidColorBrush x:Key="CheckBoxCheckGlyphForegroundUncheckedPressed" Color="Red" />
<SolidColorBrush x:Key="CheckBoxBorderBrushUncheckedPressed" Color="Cyan" />
<SolidColorBrush x:Key="CheckBoxBackgroundUncheckedPressed" Color="Pink" />
</ResourceDictionary>
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<SolidColorBrush x:Key="RadioButtonForeground" Color="DarkGreen" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseStroke" Color="LightGreen" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedStroke" Color="DarkGreen" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseFill" Color="LightGreen" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedFill" Color="DarkGreen" />

<SolidColorBrush x:Key="RadioButtonForegroundPointerOver" Color="DarkRed" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseStrokePointerOver" Color="LightPink" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedStrokePointerOver" Color="DarkRed" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseFillPointerOver" Color="LightPink" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedFillPointerOver" Color="DarkRed" />

<SolidColorBrush x:Key="RadioButtonForegroundPressed" Color="DarkBlue" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseStrokePressed" Color="LightSteelBlue" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedStrokePressed" Color="DarkBlue" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseFillPressed" Color="LightSteelBlue" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedFillPressed" Color="DarkBlue" />

<SolidColorBrush x:Key="RadioButtonForegroundDisabled" Color="LightSlateGray" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseStrokeDisabled" Color="DarkGray" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedStrokeDisabled" Color="LightSlateGray" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseFillDisabled" Color="DarkGray" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedFillDisabled" Color="LightSlateGray" />
</ResourceDictionary>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<!-- Default State -->
<SolidColorBrush x:Key="TextControlForeground" Color="Red" />
<SolidColorBrush x:Key="TextControlBackground" Color="Cyan" />

<!-- Pointer Over State -->
<SolidColorBrush x:Key="TextControlButtonBackgroundPointerOver" Color="Orange" />
<SolidColorBrush x:Key="TextControlBackgroundPointerOver" Color="Navy" />
<SolidColorBrush x:Key="TextControlForegroundPointerOver" Color="Gray" />

<!-- Focused State -->
<SolidColorBrush x:Key="TextControlForegroundFocused" Color="Yellow" />
<SolidColorBrush x:Key="TextControlBackgroundFocused" Color="RosyBrown" />
</ResourceDictionary>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<SolidColorBrush x:Key="FilledButtonForeground" Color="DarkGreen" />
<SolidColorBrush x:Key="FilledButtonBackground" Color="LightGreen" />
<SolidColorBrush x:Key="FilledButtonBorderBrush" Color="DarkGreen" />

<SolidColorBrush x:Key="FilledButtonForegroundPointerOver" Color="DarkRed" />
<SolidColorBrush x:Key="FilledButtonBackgroundPointerOver" Color="LightPink" />
<SolidColorBrush x:Key="FilledButtonBorderBrushPointerOver" Color="DarkRed" />

<SolidColorBrush x:Key="FilledButtonForegroundPressed" Color="DarkBlue" />
<SolidColorBrush x:Key="FilledButtonBackgroundPressed" Color="LightSteelBlue" />
<SolidColorBrush x:Key="FilledButtonBorderBrushPressed" Color="DarkBlue" />

<SolidColorBrush x:Key="FilledButtonForegroundFocused" Color="AntiqueWhite" />
<SolidColorBrush x:Key="FilledButtonBackgroundFocused" Color="DarkMagenta" />
<SolidColorBrush x:Key="FilledButtonBorderBrushFocused" Color="AntiqueWhite" />

<SolidColorBrush x:Key="FilledButtonForegroundDisabled" Color="LightSlateGray" />
<SolidColorBrush x:Key="FilledButtonBackgroundDisabled" Color="DarkGray" />
<SolidColorBrush x:Key="FilledButtonBorderBrushDisabled" Color="LightSlateGray" />
</ResourceDictionary>
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<!-- Checked state -->
<SolidColorBrush x:Key="CheckBoxGlyphForegroundChecked" Color="Red" />
<SolidColorBrush x:Key="CheckBoxBorderBrushChecked" Color="Green" />
<SolidColorBrush x:Key="CheckBoxBackgroundChecked" Color="White" />

<!-- Checked and pointer over state -->
<SolidColorBrush x:Key="CheckBoxGlyphForegroundCheckedPointerOver" Color="Blue" />
<SolidColorBrush x:Key="CheckBoxBorderBrushCheckedPointerOver" Color="Yellow" />
<SolidColorBrush x:Key="CheckBoxBackgroundCheckedPointerOver" Color="Black" />

<!-- Checked and pressed state -->
<SolidColorBrush x:Key="CheckBoxGlyphForegroundPressed" Color="Purple" />
<SolidColorBrush x:Key="CheckBoxBorderBrushCheckedPressed" Color="Silver" />
<SolidColorBrush x:Key="CheckBoxBackgroundCheckedPressed" Color="Cyan" />

<!-- Unchecked state -->
<StaticResource x:Key="CheckBoxBorderBrushUnchecked" ResourceKey="SecondaryBrush" />
<StaticResource x:Key="CheckBoxBackgroundUnchecked" ResourceKey="PrimaryLowBrush" />

<!-- Unchecked and pressed state -->
<SolidColorBrush x:Key="CheckBoxBorderBrushUncheckedPressed" Color="Lime" />
<SolidColorBrush x:Key="CheckBoxBackgroundUncheckedPressed" Color="Navy" />

<!-- Unchecked and pointer over state -->
<SolidColorBrush x:Key="CheckBoxBorderBrushUncheckedPointerOver" Color="Maroon" />
<SolidColorBrush x:Key="CheckBoxBackgroundUncheckedPointerOver" Color="Olive" />
</ResourceDictionary>
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<SolidColorBrush x:Key="RadioButtonForeground" Color="DarkGreen" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseStroke" Color="LightGreen" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedStroke" Color="DarkGreen" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseFill" Color="LightGreen" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedFill" Color="DarkGreen" />

<SolidColorBrush x:Key="RadioButtonForegroundPointerOver" Color="DarkRed" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseStrokePointerOver" Color="LightPink" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedStrokePointerOver" Color="DarkRed" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseFillPointerOver" Color="LightPink" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedFillPointerOver" Color="DarkRed" />

<SolidColorBrush x:Key="RadioButtonForegroundPressed" Color="DarkBlue" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseStrokePressed" Color="LightSteelBlue" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedStrokePressed" Color="DarkBlue" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseFillPressed" Color="LightSteelBlue" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedFillPressed" Color="DarkBlue" />

<SolidColorBrush x:Key="RadioButtonForegroundDisabled" Color="LightSlateGray" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseStrokeDisabled" Color="DarkGray" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedStrokeDisabled" Color="LightSlateGray" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseFillDisabled" Color="DarkGray" />
<SolidColorBrush x:Key="RadioButtonOuterEllipseCheckedFillDisabled" Color="LightSlateGray" />
</ResourceDictionary>
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<!-- Normal State -->
<SolidColorBrush x:Key="OutlinedTextBoxBorderBrush" Color="Red" />
<SolidColorBrush x:Key="OutlinedTextBoxPlaceholderForeground" Color="Green" />
<SolidColorBrush x:Key="OutlinedTextBoxForeground" Color="Orange" />

<!-- Focused state -->
<SolidColorBrush x:Key="OutlinedTextBoxBorderBrushFocused" Color="Lime" />
<SolidColorBrush x:Key="OutlinedTextBoxPlaceholderForegroundFocused" Color="Navy" />
<SolidColorBrush x:Key="OutlinedTextBoxForegroundFocused" Color="Pink" />

<!-- Pointer over state -->
<StaticResource x:Key="OutlinedTextBoxPlaceholderForegroundPointerOver" ResourceKey="SecondaryLowBrush" />
<StaticResource x:Key="OutlinedTextBoxBorderBrushPointerOver" ResourceKey="SecondaryLowBrush" />
<StaticResource x:Key="OutlinedTextBoxForegroundPointerOver" ResourceKey="PrimaryBrush" />
</ResourceDictionary>
Loading
Loading