committed by
GitHub
230 changed files with 13626 additions and 1190 deletions
@ -0,0 +1,101 @@ |
|||||
|
<UserControl |
||||
|
xmlns="https://github.com/avaloniaui" |
||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||||
|
x:Class="RenderDemo.Pages.TransitionsPage"> |
||||
|
<UserControl.Styles> |
||||
|
<Styles> |
||||
|
<Styles.Resources> |
||||
|
<Template x:Key="Acorn"> |
||||
|
<Path Fill="White" Stretch="Uniform" |
||||
|
Data="F1 M 16.6309,18.6563C 17.1309, |
||||
|
8.15625 29.8809,14.1563 29.8809, |
||||
|
14.1563C 30.8809,11.1563 34.1308, |
||||
|
11.4063 34.1308,11.4063C 33.5,12 |
||||
|
34.6309,13.1563 34.6309,13.1563C |
||||
|
32.1309,13.1562 31.1309,14.9062 |
||||
|
31.1309,14.9062C 41.1309,23.9062 |
||||
|
32.6309,27.9063 32.6309,27.9062C |
||||
|
24.6309,24.9063 21.1309,22.1562 |
||||
|
16.6309,18.6563 Z M 16.6309,19.9063C |
||||
|
21.6309,24.1563 25.1309,26.1562 |
||||
|
31.6309,28.6562C 31.6309,28.6562 |
||||
|
26.3809,39.1562 18.3809,36.1563C |
||||
|
18.3809,36.1563 18,38 16.3809,36.9063C |
||||
|
15,36 16.3809,34.9063 16.3809,34.9063C |
||||
|
16.3809,34.9063 10.1309,30.9062 16.6309,19.9063 Z"/> |
||||
|
</Template> |
||||
|
<Template x:Key="Heart"> |
||||
|
<Path Fill="Red" Stretch="Uniform" Data=" |
||||
|
M 272.70141,238.71731 |
||||
|
C 206.46141,238.71731 152.70146,292.4773 152.70146,358.71731 |
||||
|
C 152.70146,493.47282 288.63461,528.80461 381.26391,662.02535 |
||||
|
C 468.83815,529.62199 609.82641,489.17075 609.82641,358.71731 |
||||
|
C 609.82641,292.47731 556.06651,238.7173 489.82641,238.71731 |
||||
|
C 441.77851,238.71731 400.42481,267.08774 381.26391,307.90481 |
||||
|
C 362.10311,267.08773 320.74941,238.7173 272.70141,238.71731 z "/> |
||||
|
</Template> |
||||
|
</Styles.Resources> |
||||
|
|
||||
|
<Style Selector="Border.Test"> |
||||
|
<Setter Property="Margin" Value="15"/> |
||||
|
<Setter Property="Width" Value="100"/> |
||||
|
<Setter Property="Height" Value="100"/> |
||||
|
<Setter Property="Child" Value="{StaticResource Acorn}"/> |
||||
|
<Setter Property="Transitions"> |
||||
|
<Transitions> |
||||
|
<TransformOperationsTransition Property="RenderTransform" Duration="0:0:1" /> |
||||
|
</Transitions> |
||||
|
</Setter> |
||||
|
<Setter Property="RenderTransform" Value="none" /> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="Border.Rect1:pointerover"> |
||||
|
<Setter Property="RenderTransform" Value="rotate(120deg) scale(1.5)" /> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="Border.Rect2:pointerover"> |
||||
|
<Setter Property="RenderTransform" Value="scale(0.8)" /> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="Border.Rect3"> |
||||
|
<Setter Property="Child" Value="{StaticResource Heart}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="Border.Rect3:pointerover"> |
||||
|
<Setter Property="RenderTransform" Value="rotate(1turn)" /> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="Border.Rect4:pointerover"> |
||||
|
<Setter Property="RenderTransform" Value="translateY(-100px)" /> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="Border.Rect5:pointerover"> |
||||
|
<Setter Property="RenderTransform" Value="skewX(-20deg)" /> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="Border.Rect5:pointerover"> |
||||
|
<Setter Property="RenderTransform" Value="skewX(-20deg)" /> |
||||
|
</Style> |
||||
|
|
||||
|
</Styles> |
||||
|
</UserControl.Styles> |
||||
|
|
||||
|
<Grid> |
||||
|
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" ClipToBounds="False"> |
||||
|
<StackPanel.Clock> |
||||
|
<Clock /> |
||||
|
</StackPanel.Clock> |
||||
|
<StackPanel Orientation="Horizontal" VerticalAlignment="Center"> |
||||
|
<TextBlock VerticalAlignment="Center">Hover to activate Transform Keyframe Animations.</TextBlock> |
||||
|
<Button Content="{Binding PlayStateText}" Command="{Binding TogglePlayState}" Click="ToggleClock" /> |
||||
|
</StackPanel> |
||||
|
<WrapPanel ClipToBounds="False"> |
||||
|
<Border Classes="Test Rect1" Background="DarkRed"/> |
||||
|
<Border Classes="Test Rect2" Background="Magenta"/> |
||||
|
<Border Classes="Test Rect3"/> |
||||
|
<Border Classes="Test Rect4" Background="Navy"/> |
||||
|
<Border Classes="Test Rect5" Background="SeaGreen"/> |
||||
|
</WrapPanel> |
||||
|
</StackPanel> |
||||
|
</Grid> |
||||
|
</UserControl> |
||||
@ -0,0 +1,37 @@ |
|||||
|
using Avalonia.Animation; |
||||
|
using Avalonia.Controls; |
||||
|
using Avalonia.Interactivity; |
||||
|
using Avalonia.Markup.Xaml; |
||||
|
using RenderDemo.ViewModels; |
||||
|
|
||||
|
namespace RenderDemo.Pages |
||||
|
{ |
||||
|
public class TransitionsPage : UserControl |
||||
|
{ |
||||
|
public TransitionsPage() |
||||
|
{ |
||||
|
InitializeComponent(); |
||||
|
this.DataContext = new AnimationsPageViewModel(); |
||||
|
} |
||||
|
|
||||
|
private void InitializeComponent() |
||||
|
{ |
||||
|
AvaloniaXamlLoader.Load(this); |
||||
|
} |
||||
|
|
||||
|
private void ToggleClock(object sender, RoutedEventArgs args) |
||||
|
{ |
||||
|
var button = sender as Button; |
||||
|
var clock = button.Clock; |
||||
|
|
||||
|
if (clock.PlayState == PlayState.Run) |
||||
|
{ |
||||
|
clock.PlayState = PlayState.Pause; |
||||
|
} |
||||
|
else if (clock.PlayState == PlayState.Pause) |
||||
|
{ |
||||
|
clock.PlayState = PlayState.Run; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,136 +0,0 @@ |
|||||
// (c) Copyright Microsoft Corporation.
|
|
||||
// This source is subject to the Microsoft Public License (Ms-PL).
|
|
||||
// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
|
|
||||
// All other rights reserved.
|
|
||||
|
|
||||
using System; |
|
||||
|
|
||||
namespace Avalonia.Controls.Utils |
|
||||
{ |
|
||||
internal static class DoubleUtil |
|
||||
{ |
|
||||
internal const double DBL_EPSILON = 1e-6; |
|
||||
|
|
||||
/// <summary>
|
|
||||
/// AreClose - Returns whether or not two doubles are "close". That is, whether or
|
|
||||
/// not they are within epsilon of each other. Note that this epsilon is proportional
|
|
||||
/// to the numbers themselves to that AreClose survives scalar multiplication.
|
|
||||
/// There are plenty of ways for this to return false even for numbers which
|
|
||||
/// are theoretically identical, so no code calling this should fail to work if this
|
|
||||
/// returns false. This is important enough to repeat:
|
|
||||
/// NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be
|
|
||||
/// used for optimizations *only*.
|
|
||||
/// </summary>
|
|
||||
/// <returns>
|
|
||||
/// bool - the result of the AreClose comparison.
|
|
||||
/// </returns>
|
|
||||
/// <param name="value1"> The first double to compare. </param>
|
|
||||
/// <param name="value2"> The second double to compare. </param>
|
|
||||
public static bool AreClose(double value1, double value2) |
|
||||
{ |
|
||||
//in case they are Infinities (then epsilon check does not work)
|
|
||||
if (value1 == value2) return true; |
|
||||
// This computes (|value1-value2| / (|value1| + |value2| + 10.0)) < DBL_EPSILON
|
|
||||
double eps = (Math.Abs(value1) + Math.Abs(value2) + 10.0) * DBL_EPSILON; |
|
||||
double delta = value1 - value2; |
|
||||
return (-eps < delta) && (eps > delta); |
|
||||
} |
|
||||
|
|
||||
/// <summary>
|
|
||||
/// GreaterThan - Returns whether or not the first double is greater than the second double.
|
|
||||
/// That is, whether or not the first is strictly greater than *and* not within epsilon of
|
|
||||
/// the other number. Note that this epsilon is proportional to the numbers themselves
|
|
||||
/// to that AreClose survives scalar multiplication. Note,
|
|
||||
/// There are plenty of ways for this to return false even for numbers which
|
|
||||
/// are theoretically identical, so no code calling this should fail to work if this
|
|
||||
/// returns false. This is important enough to repeat:
|
|
||||
/// NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be
|
|
||||
/// used for optimizations *only*.
|
|
||||
/// </summary>
|
|
||||
/// <returns>
|
|
||||
/// bool - the result of the GreaterThan comparison.
|
|
||||
/// </returns>
|
|
||||
/// <param name="value1"> The first double to compare. </param>
|
|
||||
/// <param name="value2"> The second double to compare. </param>
|
|
||||
public static bool GreaterThan(double value1, double value2) |
|
||||
{ |
|
||||
return (value1 > value2) && !AreClose(value1, value2); |
|
||||
} |
|
||||
|
|
||||
/// <summary>
|
|
||||
/// GreaterThanOrClose - Returns whether or not the first double is greater than or close to
|
|
||||
/// the second double. That is, whether or not the first is strictly greater than or within
|
|
||||
/// epsilon of the other number. Note that this epsilon is proportional to the numbers
|
|
||||
/// themselves to that AreClose survives scalar multiplication. Note,
|
|
||||
/// There are plenty of ways for this to return false even for numbers which
|
|
||||
/// are theoretically identical, so no code calling this should fail to work if this
|
|
||||
/// returns false. This is important enough to repeat:
|
|
||||
/// NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be
|
|
||||
/// used for optimizations *only*.
|
|
||||
/// </summary>
|
|
||||
/// <returns>
|
|
||||
/// bool - the result of the GreaterThanOrClose comparison.
|
|
||||
/// </returns>
|
|
||||
/// <param name="value1"> The first double to compare. </param>
|
|
||||
/// <param name="value2"> The second double to compare. </param>
|
|
||||
public static bool GreaterThanOrClose(double value1, double value2) |
|
||||
{ |
|
||||
return (value1 > value2) || AreClose(value1, value2); |
|
||||
} |
|
||||
|
|
||||
/// <summary>
|
|
||||
/// IsZero - Returns whether or not the double is "close" to 0. Same as AreClose(double, 0),
|
|
||||
/// but this is faster.
|
|
||||
/// </summary>
|
|
||||
/// <returns>
|
|
||||
/// bool - the result of the IsZero comparison.
|
|
||||
/// </returns>
|
|
||||
/// <param name="value"> The double to compare to 0. </param>
|
|
||||
public static bool IsZero(double value) |
|
||||
{ |
|
||||
return Math.Abs(value) < 10.0 * DBL_EPSILON; |
|
||||
} |
|
||||
|
|
||||
/// <summary>
|
|
||||
/// LessThan - Returns whether or not the first double is less than the second double.
|
|
||||
/// That is, whether or not the first is strictly less than *and* not within epsilon of
|
|
||||
/// the other number. Note that this epsilon is proportional to the numbers themselves
|
|
||||
/// to that AreClose survives scalar multiplication. Note,
|
|
||||
/// There are plenty of ways for this to return false even for numbers which
|
|
||||
/// are theoretically identical, so no code calling this should fail to work if this
|
|
||||
/// returns false. This is important enough to repeat:
|
|
||||
/// NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be
|
|
||||
/// used for optimizations *only*.
|
|
||||
/// </summary>
|
|
||||
/// <returns>
|
|
||||
/// bool - the result of the LessThan comparison.
|
|
||||
/// </returns>
|
|
||||
/// <param name="value1"> The first double to compare. </param>
|
|
||||
/// <param name="value2"> The second double to compare. </param>
|
|
||||
public static bool LessThan(double value1, double value2) |
|
||||
{ |
|
||||
return (value1 < value2) && !AreClose(value1, value2); |
|
||||
} |
|
||||
|
|
||||
/// <summary>
|
|
||||
/// LessThanOrClose - Returns whether or not the first double is less than or close to
|
|
||||
/// the second double. That is, whether or not the first is strictly less than or within
|
|
||||
/// epsilon of the other number. Note that this epsilon is proportional to the numbers
|
|
||||
/// themselves to that AreClose survives scalar multiplication. Note,
|
|
||||
/// There are plenty of ways for this to return false even for numbers which
|
|
||||
/// are theoretically identical, so no code calling this should fail to work if this
|
|
||||
/// returns false. This is important enough to repeat:
|
|
||||
/// NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be
|
|
||||
/// used for optimizations *only*.
|
|
||||
/// </summary>
|
|
||||
/// <returns>
|
|
||||
/// bool - the result of the LessThanOrClose comparison.
|
|
||||
/// </returns>
|
|
||||
/// <param name="value1"> The first double to compare. </param>
|
|
||||
/// <param name="value2"> The second double to compare. </param>
|
|
||||
public static bool LessThanOrClose(double value1, double value2) |
|
||||
{ |
|
||||
return (value1 < value2) || AreClose(value1, value2); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,64 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Globalization; |
||||
|
using Avalonia.Controls.Primitives; |
||||
|
using Avalonia.Data.Converters; |
||||
|
using Avalonia.Utilities; |
||||
|
|
||||
|
namespace Avalonia.Controls.Converters |
||||
|
{ |
||||
|
public class MenuScrollingVisibilityConverter : IMultiValueConverter |
||||
|
{ |
||||
|
public static readonly MenuScrollingVisibilityConverter Instance = new MenuScrollingVisibilityConverter(); |
||||
|
|
||||
|
public object Convert(IList<object> values, Type targetType, object parameter, CultureInfo culture) |
||||
|
{ |
||||
|
if (parameter == null || |
||||
|
values == null || |
||||
|
values.Count != 4 || |
||||
|
!(values[0] is ScrollBarVisibility visiblity) || |
||||
|
!(values[1] is double offset) || |
||||
|
!(values[2] is double extent) || |
||||
|
!(values[3] is double viewport)) |
||||
|
{ |
||||
|
return AvaloniaProperty.UnsetValue; |
||||
|
} |
||||
|
|
||||
|
if (visiblity == ScrollBarVisibility.Auto) |
||||
|
{ |
||||
|
if (extent == viewport) |
||||
|
{ |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
double target; |
||||
|
|
||||
|
if (parameter is double d) |
||||
|
{ |
||||
|
target = d; |
||||
|
} |
||||
|
else if (parameter is string s) |
||||
|
{ |
||||
|
target = double.Parse(s, NumberFormatInfo.InvariantInfo); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
return AvaloniaProperty.UnsetValue; |
||||
|
} |
||||
|
|
||||
|
// Calculate the percent so that we can see if we are near the edge of the range
|
||||
|
double percent = MathUtilities.Clamp(offset * 100.0 / (extent - viewport), 0, 100); |
||||
|
|
||||
|
if (MathUtilities.AreClose(percent, target)) |
||||
|
{ |
||||
|
// We are at the end of the range, so no need for this button to be shown
|
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
return false; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,37 @@ |
|||||
|
using Avalonia.Interactivity; |
||||
|
using Avalonia.Input; |
||||
|
|
||||
|
namespace Avalonia.Controls.Mixins |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Adds pressed functionality to control classes.
|
||||
|
///
|
||||
|
/// Adds the ':pressed' class when the item is pressed.
|
||||
|
/// </summary>
|
||||
|
public static class PressedMixin |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="PressedMixin"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <typeparam name="TControl">The control type.</typeparam>
|
||||
|
public static void Attach<TControl>() where TControl : Control |
||||
|
{ |
||||
|
InputElement.PointerPressedEvent.AddClassHandler<TControl>((x, e) => HandlePointerPressed(x, e), RoutingStrategies.Tunnel); |
||||
|
InputElement.PointerReleasedEvent.AddClassHandler<TControl>((x, e) => HandlePointerReleased(x), RoutingStrategies.Tunnel); |
||||
|
InputElement.PointerCaptureLostEvent.AddClassHandler<TControl>((x, e) => HandlePointerReleased(x), RoutingStrategies.Tunnel); |
||||
|
} |
||||
|
|
||||
|
private static void HandlePointerPressed<TControl>(TControl sender, PointerPressedEventArgs e) where TControl : Control |
||||
|
{ |
||||
|
if (e.GetCurrentPoint(sender).Properties.IsLeftButtonPressed) |
||||
|
{ |
||||
|
((IPseudoClasses)sender.Classes).Set(":pressed", true); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private static void HandlePointerReleased<TControl>(TControl sender) where TControl : Control |
||||
|
{ |
||||
|
((IPseudoClasses)sender.Classes).Set(":pressed", false); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,416 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using Avalonia.Controls.Primitives; |
||||
|
using Avalonia.Data; |
||||
|
using Avalonia.Data.Converters; |
||||
|
using Avalonia.Layout; |
||||
|
using Avalonia.Media; |
||||
|
using Avalonia.Utilities; |
||||
|
|
||||
|
namespace Avalonia.Controls |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Enum which describes how to position the TickBar.
|
||||
|
/// </summary>
|
||||
|
public enum TickBarPlacement |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Position this tick at the left of target element.
|
||||
|
/// </summary>
|
||||
|
Left, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Position this tick at the top of target element.
|
||||
|
/// </summary>
|
||||
|
Top, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Position this tick at the right of target element.
|
||||
|
/// </summary>
|
||||
|
Right, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Position this tick at the bottom of target element.
|
||||
|
/// </summary>
|
||||
|
Bottom, |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// An element that is used for drawing <see cref="Slider"/>'s Ticks.
|
||||
|
/// </summary>
|
||||
|
public class TickBar : Control |
||||
|
{ |
||||
|
static TickBar() |
||||
|
{ |
||||
|
AffectsRender<TickBar>(ReservedSpaceProperty, |
||||
|
MaximumProperty, |
||||
|
MinimumProperty, |
||||
|
OrientationProperty, |
||||
|
TickFrequencyProperty); |
||||
|
} |
||||
|
|
||||
|
public TickBar() : base() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="Fill"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<IBrush> FillProperty = |
||||
|
AvaloniaProperty.Register<TickBar, IBrush>(nameof(Fill)); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Brush used to fill the TickBar's Ticks.
|
||||
|
/// </summary>
|
||||
|
public IBrush Fill |
||||
|
{ |
||||
|
get { return GetValue(FillProperty); } |
||||
|
set { SetValue(FillProperty, value); } |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="Minimum"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<double> MinimumProperty = |
||||
|
AvaloniaProperty.Register<TickBar, double>(nameof(Minimum), 0d); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Logical position where the Minimum Tick will be drawn
|
||||
|
/// </summary>
|
||||
|
public double Minimum |
||||
|
{ |
||||
|
get { return GetValue(MinimumProperty); } |
||||
|
set |
||||
|
{ |
||||
|
SetValue(MinimumProperty, value); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="Maximum"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<double> MaximumProperty = |
||||
|
AvaloniaProperty.Register<TickBar, double>(nameof(Maximum), 0d); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Logical position where the Maximum Tick will be drawn
|
||||
|
/// </summary>
|
||||
|
public double Maximum |
||||
|
{ |
||||
|
get { return GetValue(MaximumProperty); } |
||||
|
set { SetValue(MaximumProperty, value); } |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="TickFrequency"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<double> TickFrequencyProperty = |
||||
|
AvaloniaProperty.Register<TickBar, double>(nameof(TickFrequency), 0d); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// TickFrequency property defines how the tick will be drawn.
|
||||
|
/// </summary>
|
||||
|
public double TickFrequency |
||||
|
{ |
||||
|
get { return GetValue(TickFrequencyProperty); } |
||||
|
set { SetValue(TickFrequencyProperty, value); } |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="Orientation"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<Orientation> OrientationProperty = |
||||
|
AvaloniaProperty.Register<TickBar, Orientation>(nameof(Orientation)); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// TickBar parent's orientation.
|
||||
|
/// </summary>
|
||||
|
public Orientation Orientation |
||||
|
{ |
||||
|
get { return GetValue(OrientationProperty); } |
||||
|
set { SetValue(OrientationProperty, value); } |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="Ticks"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<List<double>> TicksProperty = |
||||
|
AvaloniaProperty.Register<TickBar, List<double>>(nameof(Ticks)); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The Ticks property contains collection of value of type Double which
|
||||
|
/// are the logical positions use to draw the ticks.
|
||||
|
/// The property value is a <see cref="DoubleCollection" />.
|
||||
|
/// </summary>
|
||||
|
public List<double> Ticks |
||||
|
{ |
||||
|
get { return GetValue(TicksProperty); } |
||||
|
set { SetValue(TicksProperty, value); } |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="IsDirectionReversed"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<bool> IsDirectionReversedProperty = |
||||
|
AvaloniaProperty.Register<TickBar, bool>(nameof(IsDirectionReversed), false); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The IsDirectionReversed property defines the direction of value incrementation.
|
||||
|
/// By default, if Tick's orientation is Horizontal, ticks will be drawn from left to right.
|
||||
|
/// (And, bottom to top for Vertical orientation).
|
||||
|
/// If IsDirectionReversed is 'true' the direction of the drawing will be in opposite direction.
|
||||
|
/// </summary>
|
||||
|
public bool IsDirectionReversed |
||||
|
{ |
||||
|
get { return GetValue(IsDirectionReversedProperty); } |
||||
|
set { SetValue(IsDirectionReversedProperty, value); } |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="Placement"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<TickBarPlacement> PlacementProperty = |
||||
|
AvaloniaProperty.Register<TickBar, TickBarPlacement>(nameof(Placement), 0d); |
||||
|
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Placement property specified how the Tick will be placed.
|
||||
|
/// This property affects the way ticks are drawn.
|
||||
|
/// This property has type of <see cref="TickBarPlacement" />.
|
||||
|
/// </summary>
|
||||
|
public TickBarPlacement Placement |
||||
|
{ |
||||
|
get { return GetValue(PlacementProperty); } |
||||
|
set { SetValue(PlacementProperty, value); } |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="ReservedSpace"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<Rect> ReservedSpaceProperty = |
||||
|
AvaloniaProperty.Register<TickBar, Rect>(nameof(ReservedSpace)); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// TickBar will use ReservedSpaceProperty for left and right spacing (for horizontal orientation) or
|
||||
|
/// tob and bottom spacing (for vertical orienation).
|
||||
|
/// The space on both sides of TickBar is half of specified ReservedSpace.
|
||||
|
/// This property has type of <see cref="Rect" />.
|
||||
|
/// </summary>
|
||||
|
public Rect ReservedSpace |
||||
|
{ |
||||
|
get { return GetValue(ReservedSpaceProperty); } |
||||
|
set { SetValue(ReservedSpaceProperty, value); } |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Draw ticks.
|
||||
|
/// Ticks can be draw in 8 diffrent ways depends on Placment property and IsDirectionReversed property.
|
||||
|
///
|
||||
|
/// This function also draw selection-tick(s) if IsSelectionRangeEnabled is 'true' and
|
||||
|
/// SelectionStart and SelectionEnd are valid.
|
||||
|
///
|
||||
|
/// The primary ticks (for Mininum and Maximum value) height will be 100% of TickBar's render size (use Width or Height
|
||||
|
/// depends on Placement property).
|
||||
|
///
|
||||
|
/// The secondary ticks (all other ticks, including selection-tics) height will be 75% of TickBar's render size.
|
||||
|
///
|
||||
|
/// Brush that use to fill ticks is specified by Shape.Fill property.
|
||||
|
///
|
||||
|
/// Pen that use to draw ticks is specified by Shape.Pen property.
|
||||
|
/// </summary>
|
||||
|
public override void Render(DrawingContext dc) |
||||
|
{ |
||||
|
var size = new Size(Bounds.Width, Bounds.Height); |
||||
|
var range = Maximum - Minimum; |
||||
|
var tickLen = 0.0d; // Height for Primary Tick (for Mininum and Maximum value)
|
||||
|
var tickLen2 = 0.0d; // Height for Secondary Tick
|
||||
|
var logicalToPhysical = 1.0; |
||||
|
var progression = 1.0d; |
||||
|
var startPoint = new Point(); |
||||
|
var endPoint = new Point(); |
||||
|
var rSpace = Orientation == Orientation.Horizontal ? ReservedSpace.Width : ReservedSpace.Height; |
||||
|
|
||||
|
// Take Thumb size in to account
|
||||
|
double halfReservedSpace = rSpace * 0.5; |
||||
|
|
||||
|
switch (Placement) |
||||
|
{ |
||||
|
case TickBarPlacement.Top: |
||||
|
if (MathUtilities.GreaterThanOrClose(rSpace, size.Width)) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
size = new Size(size.Width - rSpace, size.Height); |
||||
|
tickLen = -size.Height; |
||||
|
startPoint = new Point(halfReservedSpace, size.Height); |
||||
|
endPoint = new Point(halfReservedSpace + size.Width, size.Height); |
||||
|
logicalToPhysical = size.Width / range; |
||||
|
progression = 1; |
||||
|
break; |
||||
|
|
||||
|
case TickBarPlacement.Bottom: |
||||
|
if (MathUtilities.GreaterThanOrClose(rSpace, size.Width)) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
size = new Size(size.Width - rSpace, size.Height); |
||||
|
tickLen = size.Height; |
||||
|
startPoint = new Point(halfReservedSpace, 0d); |
||||
|
endPoint = new Point(halfReservedSpace + size.Width, 0d); |
||||
|
logicalToPhysical = size.Width / range; |
||||
|
progression = 1; |
||||
|
break; |
||||
|
|
||||
|
case TickBarPlacement.Left: |
||||
|
if (MathUtilities.GreaterThanOrClose(rSpace, size.Height)) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
size = new Size(size.Width, size.Height - rSpace); |
||||
|
|
||||
|
tickLen = -size.Width; |
||||
|
startPoint = new Point(size.Width, size.Height + halfReservedSpace); |
||||
|
endPoint = new Point(size.Width, halfReservedSpace); |
||||
|
logicalToPhysical = size.Height / range * -1; |
||||
|
progression = -1; |
||||
|
break; |
||||
|
|
||||
|
case TickBarPlacement.Right: |
||||
|
if (MathUtilities.GreaterThanOrClose(rSpace, size.Height)) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
size = new Size(size.Width, size.Height - rSpace); |
||||
|
tickLen = size.Width; |
||||
|
startPoint = new Point(0d, size.Height + halfReservedSpace); |
||||
|
endPoint = new Point(0d, halfReservedSpace); |
||||
|
logicalToPhysical = size.Height / range * -1; |
||||
|
progression = -1; |
||||
|
break; |
||||
|
}; |
||||
|
|
||||
|
tickLen2 = tickLen * 0.75; |
||||
|
|
||||
|
// Invert direciton of the ticks
|
||||
|
if (IsDirectionReversed) |
||||
|
{ |
||||
|
progression *= -progression; |
||||
|
logicalToPhysical *= -1; |
||||
|
|
||||
|
// swap startPoint & endPoint
|
||||
|
var pt = startPoint; |
||||
|
startPoint = endPoint; |
||||
|
endPoint = pt; |
||||
|
} |
||||
|
|
||||
|
var pen = new Pen(Fill, 1.0d); |
||||
|
|
||||
|
// Is it Vertical?
|
||||
|
if (Placement == TickBarPlacement.Left || Placement == TickBarPlacement.Right) |
||||
|
{ |
||||
|
// Reduce tick interval if it is more than would be visible on the screen
|
||||
|
double interval = TickFrequency; |
||||
|
if (interval > 0.0) |
||||
|
{ |
||||
|
double minInterval = (Maximum - Minimum) / size.Height; |
||||
|
if (interval < minInterval) |
||||
|
{ |
||||
|
interval = minInterval; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// Draw Min & Max tick
|
||||
|
dc.DrawLine(pen, startPoint, new Point(startPoint.X + tickLen, startPoint.Y)); |
||||
|
dc.DrawLine(pen, new Point(startPoint.X, endPoint.Y), |
||||
|
new Point(startPoint.X + tickLen, endPoint.Y)); |
||||
|
|
||||
|
// This property is rarely set so let's try to avoid the GetValue
|
||||
|
// caching of the mutable default value
|
||||
|
var ticks = Ticks ?? null; |
||||
|
|
||||
|
// Draw ticks using specified Ticks collection
|
||||
|
if (ticks?.Count > 0) |
||||
|
{ |
||||
|
for (int i = 0; i < ticks.Count; i++) |
||||
|
{ |
||||
|
if (MathUtilities.LessThanOrClose(ticks[i], Minimum) || MathUtilities.GreaterThanOrClose(ticks[i], Maximum)) |
||||
|
{ |
||||
|
continue; |
||||
|
} |
||||
|
|
||||
|
double adjustedTick = ticks[i] - Minimum; |
||||
|
|
||||
|
double y = adjustedTick * logicalToPhysical + startPoint.Y; |
||||
|
dc.DrawLine(pen, |
||||
|
new Point(startPoint.X, y), |
||||
|
new Point(startPoint.X + tickLen2, y)); |
||||
|
} |
||||
|
} |
||||
|
// Draw ticks using specified TickFrequency
|
||||
|
else if (interval > 0.0) |
||||
|
{ |
||||
|
for (double i = interval; i < range; i += interval) |
||||
|
{ |
||||
|
double y = i * logicalToPhysical + startPoint.Y; |
||||
|
|
||||
|
dc.DrawLine(pen, |
||||
|
new Point(startPoint.X, y), |
||||
|
new Point(startPoint.X + tickLen2, y)); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
else // Placement == Top || Placement == Bottom
|
||||
|
{ |
||||
|
// Reduce tick interval if it is more than would be visible on the screen
|
||||
|
double interval = TickFrequency; |
||||
|
if (interval > 0.0) |
||||
|
{ |
||||
|
double minInterval = (Maximum - Minimum) / size.Width; |
||||
|
if (interval < minInterval) |
||||
|
{ |
||||
|
interval = minInterval; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// Draw Min & Max tick
|
||||
|
dc.DrawLine(pen, startPoint, new Point(startPoint.X, startPoint.Y + tickLen)); |
||||
|
dc.DrawLine(pen, new Point(endPoint.X, startPoint.Y), |
||||
|
new Point(endPoint.X, startPoint.Y + tickLen)); |
||||
|
|
||||
|
// This property is rarely set so let's try to avoid the GetValue
|
||||
|
// caching of the mutable default value
|
||||
|
var ticks = Ticks ?? null; |
||||
|
|
||||
|
// Draw ticks using specified Ticks collection
|
||||
|
if (ticks?.Count > 0) |
||||
|
{ |
||||
|
for (int i = 0; i < ticks.Count; i++) |
||||
|
{ |
||||
|
if (MathUtilities.LessThanOrClose(ticks[i], Minimum) || MathUtilities.GreaterThanOrClose(ticks[i], Maximum)) |
||||
|
{ |
||||
|
continue; |
||||
|
} |
||||
|
double adjustedTick = ticks[i] - Minimum; |
||||
|
|
||||
|
double x = adjustedTick * logicalToPhysical + startPoint.X; |
||||
|
dc.DrawLine(pen, |
||||
|
new Point(x, startPoint.Y), |
||||
|
new Point(x, startPoint.Y + tickLen2)); |
||||
|
} |
||||
|
} |
||||
|
// Draw ticks using specified TickFrequency
|
||||
|
else if (interval > 0.0) |
||||
|
{ |
||||
|
for (double i = interval; i < range; i += interval) |
||||
|
{ |
||||
|
double x = i * logicalToPhysical + startPoint.X; |
||||
|
dc.DrawLine(pen, |
||||
|
new Point(x, startPoint.Y), |
||||
|
new Point(x, startPoint.Y + tickLen2)); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,105 @@ |
|||||
|
using Avalonia.Controls.Primitives; |
||||
|
using Avalonia.Controls.Templates; |
||||
|
using Avalonia.LogicalTree; |
||||
|
|
||||
|
namespace Avalonia.Controls |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// A Toggle Switch control.
|
||||
|
/// </summary>
|
||||
|
public class ToggleSwitch : ToggleButton |
||||
|
{ |
||||
|
static ToggleSwitch() |
||||
|
{ |
||||
|
OffContentProperty.Changed.AddClassHandler<ToggleSwitch>((x, e) => x.OffContentChanged(e)); |
||||
|
OnContentProperty.Changed.AddClassHandler<ToggleSwitch>((x, e) => x.OnContentChanged(e)); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="OffContent"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<object> OffContentProperty = |
||||
|
AvaloniaProperty.Register<ToggleSwitch, object>(nameof(OffContent), defaultValue: "Off"); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="OffContentTemplate"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<IDataTemplate> OffContentTemplateProperty = |
||||
|
AvaloniaProperty.Register<ToggleSwitch, IDataTemplate>(nameof(OffContentTemplate)); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="OnContent"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<object> OnContentProperty = |
||||
|
AvaloniaProperty.Register<ToggleSwitch, object>(nameof(OnContent), defaultValue: "On"); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Defines the <see cref="OnContentTemplate"/> property.
|
||||
|
/// </summary>
|
||||
|
public static readonly StyledProperty<IDataTemplate> OnContentTemplateProperty = |
||||
|
AvaloniaProperty.Register<ToggleSwitch, IDataTemplate>(nameof(OnContentTemplate)); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets or Sets the Content that is displayed when in the On State.
|
||||
|
/// </summary>
|
||||
|
public object OnContent |
||||
|
{ |
||||
|
get { return GetValue(OnContentProperty); } |
||||
|
set { SetValue(OnContentProperty, value); } |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets or Sets the Content that is displayed when in the Off State.
|
||||
|
/// </summary>
|
||||
|
public object OffContent |
||||
|
{ |
||||
|
get { return GetValue(OffContentProperty); } |
||||
|
set { SetValue(OffContentProperty, value); } |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets or Sets the <see cref="IDataTemplate"/> used to display the <see cref="OffContent"/>.
|
||||
|
/// </summary>
|
||||
|
public IDataTemplate OffContentTemplate |
||||
|
{ |
||||
|
get { return GetValue(OffContentTemplateProperty); } |
||||
|
set { SetValue(OffContentTemplateProperty, value); } |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets or Sets the <see cref="IDataTemplate"/> used to display the <see cref="OnContent"/>.
|
||||
|
/// </summary>
|
||||
|
public IDataTemplate OnContentTemplate |
||||
|
{ |
||||
|
get { return GetValue(OnContentTemplateProperty); } |
||||
|
set { SetValue(OnContentTemplateProperty, value); } |
||||
|
} |
||||
|
|
||||
|
private void OffContentChanged(AvaloniaPropertyChangedEventArgs e) |
||||
|
{ |
||||
|
if (e.OldValue is ILogical oldChild) |
||||
|
{ |
||||
|
LogicalChildren.Remove(oldChild); |
||||
|
} |
||||
|
|
||||
|
if (e.NewValue is ILogical newChild) |
||||
|
{ |
||||
|
LogicalChildren.Add(newChild); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void OnContentChanged(AvaloniaPropertyChangedEventArgs e) |
||||
|
{ |
||||
|
if (e.OldValue is ILogical oldChild) |
||||
|
{ |
||||
|
LogicalChildren.Remove(oldChild); |
||||
|
} |
||||
|
|
||||
|
if (e.NewValue is ILogical newChild) |
||||
|
{ |
||||
|
LogicalChildren.Add(newChild); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
@ -1,47 +1,105 @@ |
|||||
<Style xmlns="https://github.com/avaloniaui" Selector="ScrollViewer"> |
<Styles xmlns="https://github.com/avaloniaui" |
||||
<Setter Property="Background" |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||||
Value="Transparent" /> |
xmlns:converters="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls"> |
||||
<Setter Property="Template"> |
<Style Selector="ScrollViewer"> |
||||
<ControlTemplate> |
<Setter Property="Background" |
||||
<Grid ColumnDefinitions="*,Auto" RowDefinitions="*,Auto"> |
Value="Transparent" /> |
||||
<ScrollContentPresenter Name="PART_ContentPresenter" |
<Setter Property="Template"> |
||||
Background="{TemplateBinding Background}" |
<ControlTemplate> |
||||
CanHorizontallyScroll="{TemplateBinding CanHorizontallyScroll}" |
<Grid ColumnDefinitions="*,Auto" RowDefinitions="*,Auto"> |
||||
CanVerticallyScroll="{TemplateBinding CanVerticallyScroll}" |
<ScrollContentPresenter Name="PART_ContentPresenter" |
||||
Content="{TemplateBinding Content}" |
Background="{TemplateBinding Background}" |
||||
Extent="{TemplateBinding Extent, Mode=TwoWay}" |
CanHorizontallyScroll="{TemplateBinding CanHorizontallyScroll}" |
||||
Margin="{TemplateBinding Padding}" |
CanVerticallyScroll="{TemplateBinding CanVerticallyScroll}" |
||||
Offset="{TemplateBinding Offset, Mode=TwoWay}" |
Content="{TemplateBinding Content}" |
||||
Viewport="{TemplateBinding Viewport, Mode=TwoWay}"> |
Extent="{TemplateBinding Extent, Mode=TwoWay}" |
||||
<ScrollContentPresenter.GestureRecognizers> |
Margin="{TemplateBinding Padding}" |
||||
<ScrollGestureRecognizer |
Offset="{TemplateBinding Offset, Mode=TwoWay}" |
||||
CanHorizontallyScroll="{TemplateBinding CanHorizontallyScroll}" |
Viewport="{TemplateBinding Viewport, Mode=TwoWay}"> |
||||
CanVerticallyScroll="{TemplateBinding CanVerticallyScroll}" |
<ScrollContentPresenter.GestureRecognizers> |
||||
|
<ScrollGestureRecognizer |
||||
|
CanHorizontallyScroll="{TemplateBinding CanHorizontallyScroll}" |
||||
|
CanVerticallyScroll="{TemplateBinding CanVerticallyScroll}" |
||||
/> |
/> |
||||
</ScrollContentPresenter.GestureRecognizers> |
</ScrollContentPresenter.GestureRecognizers> |
||||
</ScrollContentPresenter> |
</ScrollContentPresenter> |
||||
<ScrollBar Name="horizontalScrollBar" |
<ScrollBar Name="horizontalScrollBar" |
||||
Orientation="Horizontal" |
Orientation="Horizontal" |
||||
LargeChange="{Binding LargeChange.Width, RelativeSource={RelativeSource TemplatedParent}}" |
LargeChange="{Binding LargeChange.Width, RelativeSource={RelativeSource TemplatedParent}}" |
||||
SmallChange="{Binding SmallChange.Width, RelativeSource={RelativeSource TemplatedParent}}" |
SmallChange="{Binding SmallChange.Width, RelativeSource={RelativeSource TemplatedParent}}" |
||||
Maximum="{TemplateBinding HorizontalScrollBarMaximum}" |
Maximum="{TemplateBinding HorizontalScrollBarMaximum}" |
||||
Value="{TemplateBinding HorizontalScrollBarValue, Mode=TwoWay}" |
Value="{TemplateBinding HorizontalScrollBarValue, Mode=TwoWay}" |
||||
ViewportSize="{TemplateBinding HorizontalScrollBarViewportSize}" |
ViewportSize="{TemplateBinding HorizontalScrollBarViewportSize}" |
||||
Visibility="{TemplateBinding HorizontalScrollBarVisibility}" |
Visibility="{TemplateBinding HorizontalScrollBarVisibility}" |
||||
Grid.Row="1" |
Grid.Row="1" |
||||
Focusable="False"/> |
Focusable="False"/> |
||||
<ScrollBar Name="verticalScrollBar" |
<ScrollBar Name="verticalScrollBar" |
||||
Orientation="Vertical" |
Orientation="Vertical" |
||||
LargeChange="{Binding LargeChange.Height, RelativeSource={RelativeSource TemplatedParent}}" |
LargeChange="{Binding LargeChange.Height, RelativeSource={RelativeSource TemplatedParent}}" |
||||
SmallChange="{Binding SmallChange.Height, RelativeSource={RelativeSource TemplatedParent}}" |
SmallChange="{Binding SmallChange.Height, RelativeSource={RelativeSource TemplatedParent}}" |
||||
Maximum="{TemplateBinding VerticalScrollBarMaximum}" |
Maximum="{TemplateBinding VerticalScrollBarMaximum}" |
||||
Value="{TemplateBinding VerticalScrollBarValue, Mode=TwoWay}" |
Value="{TemplateBinding VerticalScrollBarValue, Mode=TwoWay}" |
||||
ViewportSize="{TemplateBinding VerticalScrollBarViewportSize}" |
ViewportSize="{TemplateBinding VerticalScrollBarViewportSize}" |
||||
Visibility="{TemplateBinding VerticalScrollBarVisibility}" |
Visibility="{TemplateBinding VerticalScrollBarVisibility}" |
||||
Grid.Column="1" |
Grid.Column="1" |
||||
Focusable="False"/> |
Focusable="False"/> |
||||
<Panel Grid.Row="1" Grid.Column="1" Background="{DynamicResource ThemeControlMidBrush}"/> |
<Panel Grid.Row="1" Grid.Column="1" Background="{DynamicResource ThemeControlMidBrush}"/> |
||||
</Grid> |
</Grid> |
||||
</ControlTemplate> |
</ControlTemplate> |
||||
</Setter> |
</Setter> |
||||
</Style> |
</Style> |
||||
|
|
||||
|
<Style Selector="ScrollViewer.menuscroller"> |
||||
|
<Setter Property="Template"> |
||||
|
<ControlTemplate> |
||||
|
<DockPanel> |
||||
|
<RepeatButton DockPanel.Dock="Top" |
||||
|
BorderThickness="0" |
||||
|
Background="Transparent" |
||||
|
Command="{Binding LineUp, RelativeSource={RelativeSource TemplatedParent}}"> |
||||
|
<RepeatButton.IsVisible> |
||||
|
<MultiBinding Converter="{x:Static converters:MenuScrollingVisibilityConverter.Instance}" |
||||
|
ConverterParameter="0"> |
||||
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="VerticalScrollBarVisibility"/> |
||||
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Offset.Y"/> |
||||
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Extent.Height"/> |
||||
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Viewport.Height"/> |
||||
|
</MultiBinding> |
||||
|
</RepeatButton.IsVisible> |
||||
|
<Path Data="M 0 4 L 8 4 L 4 0 Z"/> |
||||
|
</RepeatButton> |
||||
|
<RepeatButton DockPanel.Dock="Bottom" |
||||
|
BorderThickness="0" |
||||
|
Background="Transparent" |
||||
|
Command="{Binding LineDown, RelativeSource={RelativeSource TemplatedParent}}"> |
||||
|
<RepeatButton.IsVisible> |
||||
|
<MultiBinding Converter="{x:Static converters:MenuScrollingVisibilityConverter.Instance}" |
||||
|
ConverterParameter="100"> |
||||
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="VerticalScrollBarVisibility"/> |
||||
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Offset.Y"/> |
||||
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Extent.Height"/> |
||||
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Viewport.Height"/> |
||||
|
</MultiBinding> |
||||
|
</RepeatButton.IsVisible> |
||||
|
<Path Data="M 0 0 L 4 4 L 8 0 Z"/> |
||||
|
</RepeatButton> |
||||
|
<ScrollContentPresenter Name="PART_ContentPresenter" |
||||
|
CanHorizontallyScroll="{TemplateBinding CanHorizontallyScroll}" |
||||
|
CanVerticallyScroll="{TemplateBinding CanVerticallyScroll}" |
||||
|
Content="{TemplateBinding Content}" |
||||
|
Extent="{TemplateBinding Extent, Mode=TwoWay}" |
||||
|
Margin="{TemplateBinding Padding}" |
||||
|
Offset="{TemplateBinding Offset, Mode=TwoWay}" |
||||
|
Viewport="{TemplateBinding Viewport, Mode=TwoWay}"/> |
||||
|
</DockPanel> |
||||
|
</ControlTemplate> |
||||
|
</Setter> |
||||
|
</Style> |
||||
|
<Style Selector="ScrollViewer.menuscroller /template/ RepeatButton > Path"> |
||||
|
<Setter Property="Fill" Value="{DynamicResource ThemeForegroundLowBrush}" /> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ScrollViewer.menuscroller /template/ RepeatButton:pointerover > Path"> |
||||
|
<Setter Property="Fill" Value="{DynamicResource ThemeAccentBrush}" /> |
||||
|
</Style> |
||||
|
</Styles> |
||||
|
|||||
@ -0,0 +1,294 @@ |
|||||
|
<Styles xmlns="https://github.com/avaloniaui" |
||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||||
|
xmlns:sys="clr-namespace:System;assembly=netstandard"> |
||||
|
<Styles.Resources> |
||||
|
<Thickness x:Key="ToggleSwitchTopHeaderMargin">0,0,0,6</Thickness> |
||||
|
<x:Double x:Key="ToggleSwitchPreContentMargin">6</x:Double> |
||||
|
<x:Double x:Key="ToggleSwitchPostContentMargin">6</x:Double> |
||||
|
<x:Double x:Key="ToggleSwitchThemeMinWidth">154</x:Double> |
||||
|
<x:Double x:Key="KnobOnPosition">20</x:Double> |
||||
|
<x:Double x:Key="KnobOffPosition">0</x:Double> |
||||
|
</Styles.Resources> |
||||
|
<Design.PreviewWith> |
||||
|
<StackPanel Margin="20" Width="250" Spacing="24" > |
||||
|
<StackPanel Spacing="12" > |
||||
|
<TextBlock |
||||
|
Text="Automatic updates" |
||||
|
Classes="h1"/> |
||||
|
<TextBlock |
||||
|
Text="Updates will be automaticly Downloaded and installed shile the computer is shutting down or restarting" |
||||
|
TextWrapping="Wrap"/> |
||||
|
<ToggleSwitch HorizontalContentAlignment="Left" |
||||
|
Content="Enable automatic Updates?" |
||||
|
OffContent="Uit" |
||||
|
OnContent="Aan" |
||||
|
VerticalAlignment="Bottom"/> |
||||
|
</StackPanel> |
||||
|
|
||||
|
<StackPanel Spacing="12"> |
||||
|
<TextBlock |
||||
|
Text="Previewer" |
||||
|
Classes="h1"/> |
||||
|
<TextBlock |
||||
|
Text="The previewer Shows a preview off your code, this could slow down your system" |
||||
|
TextWrapping="Wrap"/> |
||||
|
<ToggleSwitch |
||||
|
Content="Previewer" |
||||
|
IsChecked="True" /> |
||||
|
</StackPanel> |
||||
|
</StackPanel> |
||||
|
</Design.PreviewWith> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch"> |
||||
|
<Setter Property="Foreground" Value="{DynamicResource ToggleSwitchContentForeground}" /> |
||||
|
<Setter Property="HorizontalAlignment" Value="Left" /> |
||||
|
<Setter Property="VerticalAlignment" Value="Center" /> |
||||
|
<Setter Property="HorizontalContentAlignment" Value="Left" /> |
||||
|
<Setter Property="FontFamily" Value="{DynamicResource ContentControlThemeFontFamily}" /> |
||||
|
<Setter Property="FontSize" Value="{DynamicResource ControlContentThemeFontSize}" /> |
||||
|
<Setter Property="Template"> |
||||
|
<ControlTemplate> |
||||
|
<Grid Background="{TemplateBinding Background}" |
||||
|
RowDefinitions="Auto,*"> |
||||
|
|
||||
|
<ContentPresenter x:Name="PART_ContentPresenter" |
||||
|
Grid.Row="0" |
||||
|
Content="{TemplateBinding Content}" |
||||
|
ContentTemplate="{TemplateBinding ContentTemplate}" |
||||
|
Margin="{DynamicResource ToggleSwitchTopHeaderMargin}" |
||||
|
VerticalAlignment="Top"/> |
||||
|
|
||||
|
<Grid Grid.Row="1" |
||||
|
MinWidth="{StaticResource ToggleSwitchThemeMinWidth}" |
||||
|
HorizontalAlignment="Left" |
||||
|
VerticalAlignment="Top"> |
||||
|
|
||||
|
<Grid.RowDefinitions> |
||||
|
<RowDefinition Height="{DynamicResource ToggleSwitchPreContentMargin}" /> |
||||
|
<RowDefinition Height="Auto" /> |
||||
|
<RowDefinition Height="{DynamicResource ToggleSwitchPostContentMargin}" /> |
||||
|
</Grid.RowDefinitions> |
||||
|
|
||||
|
<Grid.ColumnDefinitions> |
||||
|
<ColumnDefinition Width="Auto" /> |
||||
|
<ColumnDefinition Width="12" MaxWidth="12" /> |
||||
|
<ColumnDefinition Width="Auto" /> |
||||
|
</Grid.ColumnDefinitions> |
||||
|
|
||||
|
<Grid x:Name="SwitchAreaGrid" |
||||
|
Grid.RowSpan="3" |
||||
|
Grid.ColumnSpan="3" |
||||
|
TemplatedControl.IsTemplateFocusTarget="True" |
||||
|
Margin="0,5" /> |
||||
|
|
||||
|
<ContentPresenter x:Name="PART_OffContentPresenter" |
||||
|
Grid.RowSpan="3" |
||||
|
Grid.Column="2" |
||||
|
Content="{TemplateBinding OffContent}" |
||||
|
ContentTemplate="{TemplateBinding OffContentTemplate}" |
||||
|
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" |
||||
|
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> |
||||
|
|
||||
|
<ContentPresenter x:Name="PART_OnContentPresenter" |
||||
|
Grid.RowSpan="3" |
||||
|
Grid.Column="2" |
||||
|
Content="{TemplateBinding OnContent}" |
||||
|
ContentTemplate="{TemplateBinding OnContentTemplate}" |
||||
|
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" |
||||
|
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> |
||||
|
|
||||
|
<Border x:Name="OuterBorder" |
||||
|
Grid.Row="1" |
||||
|
Height="20" |
||||
|
Width="40" |
||||
|
CornerRadius="10" |
||||
|
BorderThickness="{DynamicResource ToggleSwitchOuterBorderStrokeThickness}" /> |
||||
|
|
||||
|
<Border x:Name="SwitchKnobBounds" |
||||
|
Grid.Row="1" |
||||
|
Height="20" |
||||
|
Width="40" |
||||
|
CornerRadius="10" |
||||
|
BorderThickness="{DynamicResource ToggleSwitchOnStrokeThickness}"/> |
||||
|
|
||||
|
<Canvas x:Name="SwitchKnob" Grid.Row="1" |
||||
|
HorizontalAlignment="Left" |
||||
|
Width="20" Height="20"> |
||||
|
|
||||
|
<Grid x:Name="MovingKnobs" |
||||
|
Width="20" Height="20"> |
||||
|
|
||||
|
<Ellipse x:Name="SwitchKnobOn" |
||||
|
Width="10" Height="10" /> |
||||
|
|
||||
|
<Ellipse x:Name="SwitchKnobOff" |
||||
|
Width="10" Height="10" /> |
||||
|
</Grid> |
||||
|
</Canvas> |
||||
|
</Grid> |
||||
|
</Grid> |
||||
|
</ControlTemplate> |
||||
|
</Setter> |
||||
|
</Style> |
||||
|
|
||||
|
<!-- NormalState --> |
||||
|
<Style Selector="ToggleSwitch /template/ Grid#SwitchAreaGrid"> |
||||
|
<Setter Property="Background" Value="{DynamicResource ToggleSwitchContainerBackground}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch /template/ Border#OuterBorder"> |
||||
|
<Setter Property="Background" Value="{DynamicResource ToggleSwitchFillOff}"/> |
||||
|
<Setter Property="BorderBrush" Value="{DynamicResource ToggleSwitchStrokeOff}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch /template/ Border#SwitchKnobBounds"> |
||||
|
<Setter Property="Background" Value="{DynamicResource ToggleSwitchFillOn}"/> |
||||
|
<Setter Property="BorderBrush" Value="{DynamicResource ToggleSwitchStrokeOn}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch /template/ Ellipse#SwitchKnobOn"> |
||||
|
<Setter Property="Fill" Value="{DynamicResource ToggleSwitchKnobFillOn}"/> |
||||
|
<Setter Property="Stroke" Value="{DynamicResource ToggleSwitchKnobStrokeOn}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch /template/ Ellipse#SwitchKnobOff"> |
||||
|
<Setter Property="Fill" Value="{DynamicResource ToggleSwitchKnobFillOff}"/> |
||||
|
<Setter Property="Stroke" Value="{DynamicResource ToggleSwitchKnobStrokeOff}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch /template/ Grid#MovingKnobs"> |
||||
|
<Setter Property="Canvas.Left" Value="{DynamicResource KnobOffPosition}"/> |
||||
|
<Setter Property="Transitions"> |
||||
|
<Transitions> |
||||
|
<DoubleTransition Property="Canvas.Left" Duration="0:0:0.2" Easing="CubicEaseOut"/> |
||||
|
</Transitions> |
||||
|
</Setter> |
||||
|
</Style> |
||||
|
|
||||
|
<!-- PointerOverState --> |
||||
|
<Style Selector="ToggleSwitch:pointerover /template/ Border#OuterBorder"> |
||||
|
<Setter Property="BorderBrush" Value="{DynamicResource ToggleSwitchStrokeOffPointerOver}"/> |
||||
|
<Setter Property="Background" Value="{DynamicResource ToggleSwitchFillOffPointerOver}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:pointerover /template/ Ellipse#SwitchKnobOff"> |
||||
|
<Setter Property="Fill" Value="{DynamicResource ToggleSwitchKnobFillOffPointerOver}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:pointerover /template/ Ellipse#SwitchKnobOn"> |
||||
|
<Setter Property="Fill" Value="{DynamicResource ToggleSwitchKnobFillOnPointerOver}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:pointerover /template/ Border#SwitchKnobBounds"> |
||||
|
<Setter Property="Background" Value="{DynamicResource ToggleSwitchFillOnPointerOver}"/> |
||||
|
<Setter Property="BorderBrush" Value="{DynamicResource ToggleSwitchStrokeOnPointerOver}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:pointerover /template/ Grid#SwitchAreaGrid"> |
||||
|
<Setter Property="Background" Value="{DynamicResource ToggleSwitchContainerBackgroundPointerOver}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<!-- PressedState --> |
||||
|
<Style Selector="ToggleSwitch:pressed /template/ Border#OuterBorder"> |
||||
|
<Setter Property="BorderBrush" Value="{DynamicResource ToggleSwitchStrokeOffPressed}"/> |
||||
|
<Setter Property="Background" Value="{DynamicResource ToggleSwitchFillOffPressed}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:pressed /template/ Border#SwitchKnobBounds"> |
||||
|
<Setter Property="Background" Value="{DynamicResource ToggleSwitchFillOnPressed}"/> |
||||
|
<Setter Property="BorderBrush" Value="{DynamicResource ToggleSwitchStrokeOnPressed}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:pressed /template/ Ellipse#SwitchKnobOff"> |
||||
|
<Setter Property="Fill" Value="{DynamicResource ToggleSwitchKnobFillOffPressed}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:pressed /template/ Ellipse#SwitchKnobOn"> |
||||
|
<Setter Property="Fill" Value="{DynamicResource ToggleSwitchKnobFillOnPressed}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:pressed /template/ Grid#SwitchAreaGrid"> |
||||
|
<Setter Property="Background" Value="{DynamicResource ToggleSwitchContainerBackgroundPressed}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<!-- DisabledState --> |
||||
|
<Style Selector="ToggleSwitch:disabled"> |
||||
|
<Setter Property="Foreground" Value="{DynamicResource ToggleSwitchHeaderForegroundDisabled}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:disabled /template/ Border#OuterBorder"> |
||||
|
<Setter Property="BorderBrush" Value="{DynamicResource ToggleSwitchStrokeOffDisabled}"/> |
||||
|
<Setter Property="Background" Value="{DynamicResource ToggleSwitchFillOffPressed}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:disabled /template/ Ellipse#SwitchKnobOff"> |
||||
|
<Setter Property="Fill" Value="{DynamicResource ToggleSwitchKnobFillOffDisabled}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:disabled /template/ Ellipse#SwitchKnobOn"> |
||||
|
<Setter Property="Fill" Value="{DynamicResource ToggleSwitchKnobFillOnDisabled}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:disabled /template/ Border#SwitchKnobBounds"> |
||||
|
<Setter Property="Background" Value="{DynamicResource ToggleSwitchFillOnDisabled}"/> |
||||
|
<Setter Property="BorderBrush" Value="{DynamicResource ToggleSwitchStrokeOnDisabled}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<!-- CheckedState --> |
||||
|
<Style Selector="ToggleSwitch:checked /template/ Grid#MovingKnobs"> |
||||
|
<Setter Property="Canvas.Left" Value="{DynamicResource KnobOnPosition}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:checked /template/ Border#OuterBorder"> |
||||
|
<Setter Property="Opacity" Value="0"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:checked /template/ Ellipse#SwitchKnobOff"> |
||||
|
<Setter Property="Opacity" Value="0"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:checked /template/ Border#SwitchKnobBounds"> |
||||
|
<Setter Property="Opacity" Value="1"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:checked /template/ Ellipse#SwitchKnobOn"> |
||||
|
<Setter Property="Opacity" Value="1"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:checked /template/ ContentPresenter#PART_OffContentPresenter"> |
||||
|
<Setter Property="Opacity" Value="0"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:checked /template/ ContentPresenter#PART_OnContentPresenter"> |
||||
|
<Setter Property="Opacity" Value="1"/> |
||||
|
</Style> |
||||
|
|
||||
|
<!--UncheckedState --> |
||||
|
<Style Selector="ToggleSwitch:unchecked /template/ Grid#MovingKnobs"> |
||||
|
<Setter Property="Canvas.Left" Value="{DynamicResource KnobOffPosition}"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:unchecked /template/ Border#OuterBorder"> |
||||
|
<Setter Property="Opacity" Value="1"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:unchecked /template/ Ellipse#SwitchKnobOff"> |
||||
|
<Setter Property="Opacity" Value="1"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:unchecked /template/ Ellipse#SwitchKnobOn"> |
||||
|
<Setter Property="Opacity" Value="0"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:unchecked /template/ Border#SwitchKnobBounds"> |
||||
|
<Setter Property="Opacity" Value="0"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:unchecked /template/ ContentPresenter#PART_OffContentPresenter"> |
||||
|
<Setter Property="Opacity" Value="1"/> |
||||
|
</Style> |
||||
|
|
||||
|
<Style Selector="ToggleSwitch:unchecked /template/ ContentPresenter#PART_OnContentPresenter"> |
||||
|
<Setter Property="Opacity" Value="0"/> |
||||
|
</Style> |
||||
|
</Styles> |
||||
@ -0,0 +1,24 @@ |
|||||
|
<Style xmlns="https://github.com/avaloniaui" |
||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||||
|
xmlns:sys="clr-namespace:System;assembly=netstandard"> |
||||
|
<Style.Resources> |
||||
|
<!-- https://docs.microsoft.com/en-us/previous-versions/windows/apps/dn518235(v=win.10)?redirectedfrom=MSDN --> |
||||
|
<!-- SystemColor Color Resources (Reflect OS High Contrast Settings) --> |
||||
|
<Color x:Key="SystemColorButtonFaceColor">#FFF0F0F0</Color> |
||||
|
<Color x:Key="SystemColorButtonTextColor">#FF000000</Color> |
||||
|
<Color x:Key="SystemColorGrayText">#FF6D6D6D</Color> |
||||
|
<Color x:Key="SystemColorHighlight">#FF3399FF</Color> |
||||
|
<Color x:Key="SystemColorHighlightText">#FFFFFFFF</Color> |
||||
|
<Color x:Key="SystemColorHotlight">#FF0066CC</Color> |
||||
|
<Color x:Key="SystemColorWindow">#FFFFFFFF</Color> |
||||
|
<Color x:Key="SystemColorWindowText">#FF000000</Color> |
||||
|
<FontFamily x:Key="ContentControlThemeFontFamily">Segoe UI</FontFamily> |
||||
|
<sys:Double x:Key="ControlContentThemeFontSize">14</sys:Double> |
||||
|
|
||||
|
<SolidColorBrush x:Key="SystemControlTransparentBrush" Color="Transparent" /> |
||||
|
<x:Boolean x:Key="UseSystemFocusVisuals">True</x:Boolean> |
||||
|
<Thickness x:Key="TextControlBorderThemeThickness">1</Thickness> |
||||
|
<Thickness x:Key="TextControlBorderThemeThicknessFocused">2</Thickness> |
||||
|
<Thickness x:Key="TextControlThemePadding">10,6,6,5</Thickness> |
||||
|
</Style.Resources> |
||||
|
</Style> |
||||
@ -0,0 +1,355 @@ |
|||||
|
<Style xmlns="https://github.com/avaloniaui" |
||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||||
|
xmlns:sys="clr-namespace:System;assembly=netstandard"> |
||||
|
<Style.Resources> |
||||
|
<!-- Accent Colours --> |
||||
|
<!-- TODO pull accents from system... algorithm to generate shades --> |
||||
|
<Color x:Key="SystemAccentColor">#FF0078D7</Color> |
||||
|
<Color x:Key="SystemAccentColorDark1">#FF005A9E</Color> |
||||
|
<Color x:Key="SystemAccentColorDark2">#FF004275</Color> |
||||
|
<Color x:Key="SystemAccentColorDark3">#FF002642</Color> |
||||
|
<Color x:Key="SystemAccentColorLight1">#FF429CE3</Color> |
||||
|
<Color x:Key="SystemAccentColorLight2">#FF76B9ED</Color> |
||||
|
<Color x:Key="SystemAccentColorLight3">#FFA6D8FF</Color> |
||||
|
|
||||
|
<!-- System Control Colors --> |
||||
|
<Color x:Key="SystemAltHighColor">#FF000000</Color> |
||||
|
<Color x:Key="SystemAltLowColor">#33000000</Color> |
||||
|
<Color x:Key="SystemAltMediumColor">#99000000</Color> |
||||
|
<Color x:Key="SystemAltMediumHighColor">#CC000000</Color> |
||||
|
<Color x:Key="SystemAltMediumLowColor">#66000000</Color> |
||||
|
<Color x:Key="SystemBaseHighColor">#FFFFFFFF</Color> |
||||
|
<Color x:Key="SystemBaseLowColor">#33FFFFFF</Color> |
||||
|
<Color x:Key="SystemBaseMediumColor">#99FFFFFF</Color> |
||||
|
<Color x:Key="SystemBaseMediumHighColor">#CCFFFFFF</Color> |
||||
|
<Color x:Key="SystemBaseMediumLowColor">#66FFFFFF</Color> |
||||
|
<Color x:Key="SystemChromeAltLowColor">#FFF2F2F2</Color> |
||||
|
<Color x:Key="SystemChromeBlackHighColor">#FF000000</Color> |
||||
|
<Color x:Key="SystemChromeBlackLowColor">#33000000</Color> |
||||
|
<Color x:Key="SystemChromeBlackMediumLowColor">#66000000</Color> |
||||
|
<Color x:Key="SystemChromeBlackMediumColor">#CC000000</Color> |
||||
|
<Color x:Key="SystemChromeDisabledHighColor">#FF333333</Color> |
||||
|
<Color x:Key="SystemChromeDisabledLowColor">#FF858585</Color> |
||||
|
<Color x:Key="SystemChromeHighColor">#FF767676</Color> |
||||
|
<Color x:Key="SystemChromeLowColor">#FF171717</Color> |
||||
|
<Color x:Key="SystemChromeMediumColor">#FF1F1F1F</Color> |
||||
|
<Color x:Key="SystemChromeMediumLowColor">#FF2B2B2B</Color> |
||||
|
<Color x:Key="SystemChromeWhiteColor">#FFFFFFFF</Color> |
||||
|
<Color x:Key="SystemChromeGrayColor">#FF767676</Color> |
||||
|
<Color x:Key="SystemListLowColor">#19FFFFFF</Color> |
||||
|
<Color x:Key="SystemListMediumColor">#33FFFFFF</Color> |
||||
|
<Color x:Key="SystemErrorTextColor">#FFF000</Color> |
||||
|
|
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundAccentBrush" Color="{DynamicResource SystemAccentColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundAltHighBrush" Color="{StaticResource SystemAltHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundAltMediumHighBrush" Color="{StaticResource SystemAltMediumHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundAltMediumBrush" Color="{StaticResource SystemAltMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundAltMediumLowBrush" Color="{StaticResource SystemAltMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundBaseHighBrush" Color="{StaticResource SystemBaseHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundBaseLowBrush" Color="{StaticResource SystemBaseLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundBaseMediumBrush" Color="{StaticResource SystemBaseMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundBaseMediumHighBrush" Color="{StaticResource SystemBaseMediumHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundBaseMediumLowBrush" Color="{StaticResource SystemBaseMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundChromeBlackHighBrush" Color="{StaticResource SystemChromeBlackHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundChromeBlackMediumBrush" Color="{StaticResource SystemChromeBlackMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundChromeBlackLowBrush" Color="{StaticResource SystemChromeBlackLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundChromeBlackMediumLowBrush" Color="{StaticResource SystemChromeBlackMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundChromeMediumBrush" Color="{StaticResource SystemChromeMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundChromeMediumLowBrush" Color="{StaticResource SystemChromeMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundChromeWhiteBrush" Color="{StaticResource SystemChromeWhiteColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundListLowBrush" Color="{StaticResource SystemListLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlBackgroundListMediumBrush" Color="{StaticResource SystemListMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlDisabledAccentBrush" Color="{DynamicResource SystemAccentColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlDisabledBaseHighBrush" Color="{StaticResource SystemBaseHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlDisabledBaseLowBrush" Color="{StaticResource SystemBaseLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlDisabledBaseMediumLowBrush" Color="{StaticResource SystemBaseMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlDisabledChromeDisabledHighBrush" Color="{StaticResource SystemChromeDisabledHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlDisabledChromeDisabledLowBrush" Color="{StaticResource SystemChromeDisabledLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlDisabledChromeHighBrush" Color="{StaticResource SystemChromeHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlDisabledChromeMediumLowBrush" Color="{StaticResource SystemChromeMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlDisabledListMediumBrush" Color="{StaticResource SystemListMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlDisabledTransparentBrush" Color="Transparent" /> |
||||
|
<SolidColorBrush x:Key="SystemControlFocusVisualPrimaryBrush" Color="{DynamicResource SystemBaseHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlFocusVisualSecondaryBrush" Color="{DynamicResource SystemAltMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlRevealFocusVisualBrush" Color="{DynamicResource SystemAccentColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundAccentBrush" Color="{DynamicResource SystemAccentColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundAltHighBrush" Color="{StaticResource SystemAltHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundAltMediumHighBrush" Color="{StaticResource SystemAltMediumHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundBaseHighBrush" Color="{StaticResource SystemBaseHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundBaseLowBrush" Color="{StaticResource SystemBaseLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundBaseMediumBrush" Color="{StaticResource SystemBaseMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundBaseMediumHighBrush" Color="{StaticResource SystemBaseMediumHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundBaseMediumLowBrush" Color="{StaticResource SystemBaseMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundChromeBlackHighBrush" Color="{StaticResource SystemChromeBlackHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundChromeHighBrush" Color="{StaticResource SystemChromeHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundChromeMediumBrush" Color="{StaticResource SystemChromeMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundChromeWhiteBrush" Color="{StaticResource SystemChromeWhiteColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundChromeDisabledLowBrush" Color="{StaticResource SystemChromeDisabledLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundChromeGrayBrush" Color="{StaticResource SystemChromeGrayColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundListLowBrush" Color="{StaticResource SystemListLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundListMediumBrush" Color="{StaticResource SystemListMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundTransparentBrush" Color="Transparent" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundChromeBlackMediumBrush" Color="{StaticResource SystemChromeBlackMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlForegroundChromeBlackMediumLowBrush" Color="{StaticResource SystemChromeBlackMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="{DynamicResource SystemAccentColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltAccentBrush" Color="{DynamicResource SystemAccentColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltAltHighBrush" Color="{StaticResource SystemAltHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltBaseHighBrush" Color="{StaticResource SystemBaseHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltBaseLowBrush" Color="{StaticResource SystemBaseLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltBaseMediumBrush" Color="{StaticResource SystemBaseMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltBaseMediumHighBrush" Color="{StaticResource SystemBaseMediumHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltAltMediumHighBrush" Color="{StaticResource SystemAltMediumHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltBaseMediumLowBrush" Color="{StaticResource SystemBaseMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltListAccentHighBrush" Color="{DynamicResource SystemAccentColor}" Opacity="0.9" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltListAccentLowBrush" Color="{DynamicResource SystemAccentColor}" Opacity="0.6" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltListAccentMediumBrush" Color="{DynamicResource SystemAccentColor}" Opacity="0.8" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltChromeWhiteBrush" Color="{StaticResource SystemChromeWhiteColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAltTransparentBrush" Color="Transparent" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightBaseHighBrush" Color="{StaticResource SystemBaseHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightBaseLowBrush" Color="{StaticResource SystemBaseLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightBaseMediumBrush" Color="{StaticResource SystemBaseMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightBaseMediumHighBrush" Color="{StaticResource SystemBaseMediumHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightBaseMediumLowBrush" Color="{StaticResource SystemBaseMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightChromeAltLowBrush" Color="{StaticResource SystemChromeAltLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightChromeHighBrush" Color="{StaticResource SystemChromeHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightListAccentHighBrush" Color="{DynamicResource SystemAccentColor}" Opacity="0.9" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightListAccentLowBrush" Color="{DynamicResource SystemAccentColor}" Opacity="0.6" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightListAccentMediumBrush" Color="{DynamicResource SystemAccentColor}" Opacity="0.8" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightListMediumBrush" Color="{StaticResource SystemListMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightListLowBrush" Color="{StaticResource SystemListLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightChromeWhiteBrush" Color="{StaticResource SystemChromeWhiteColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightTransparentBrush" Color="Transparent" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHyperlinkTextBrush" Color="{DynamicResource SystemAccentColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHyperlinkBaseHighBrush" Color="{StaticResource SystemBaseHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHyperlinkBaseMediumBrush" Color="{StaticResource SystemBaseMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHyperlinkBaseMediumHighBrush" Color="{StaticResource SystemBaseMediumHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageBackgroundAltMediumBrush" Color="{StaticResource SystemAltMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageBackgroundAltHighBrush" Color="{StaticResource SystemAltHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageBackgroundMediumAltMediumBrush" Color="{StaticResource SystemAltMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageBackgroundBaseLowBrush" Color="{StaticResource SystemBaseLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageBackgroundBaseMediumBrush" Color="{StaticResource SystemBaseMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageBackgroundListLowBrush" Color="{StaticResource SystemListLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageBackgroundChromeLowBrush" Color="{StaticResource SystemChromeLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageBackgroundChromeMediumLowBrush" Color="{StaticResource SystemChromeMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageBackgroundTransparentBrush" Color="Transparent" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageTextBaseHighBrush" Color="{StaticResource SystemBaseHighColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageTextBaseMediumBrush" Color="{StaticResource SystemBaseMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlPageTextChromeBlackMediumLowBrush" Color="{StaticResource SystemChromeBlackMediumLowColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlTransparentBrush" Color="Transparent" /> |
||||
|
<SolidColorBrush x:Key="SystemControlErrorTextForegroundBrush" Color="{StaticResource SystemErrorTextColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlTransientBorderBrush" Color="#000000" Opacity="0.36" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightListLowRevealBackgroundBrush" Color="{StaticResource SystemListMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightListMediumRevealBackgroundBrush" Color="{StaticResource SystemListMediumColor}" /> |
||||
|
<SolidColorBrush x:Key="SystemControlHighlightAccentRevealBackgroundBrush" Color="{StaticResource SystemAccentColor}" /> |
||||
|
<!-- TODO implement AcrylicBrush --> |
||||
|
<!--<AcrylicBrush x:Key="SystemControlTransientBackgroundBrush" BackgroundSource="HostBackdrop" TintColor="{StaticResource SystemChromeAltHighColor}" TintOpacity="0.8" FallbackColor="{StaticResource SystemChromeMediumLowColor}" />--> |
||||
|
<SolidColorBrush x:Key="SystemControlTransientBackgroundBrush" Color="{StaticResource SystemChromeMediumLowColor}" /> |
||||
|
<StaticResource x:Key="SystemControlDescriptionTextForegroundBrush" ResourceKey="SystemControlPageTextBaseMediumBrush" /> |
||||
|
<x:Boolean x:Key="IsApplicationFocusVisualKindReveal">False</x:Boolean> |
||||
|
|
||||
|
|
||||
|
<!-- Default Control Settings --> |
||||
|
<FontFamily x:Key="ContentControlThemeFontFamily">XamlAutoFontFamily</FontFamily> |
||||
|
<FontFamily x:Key="MTCMediaFontFamily">XamlAutoFontFamily</FontFamily> |
||||
|
<FontFamily x:Key="PhoneFontFamilyNormal">Segoe WP</FontFamily> |
||||
|
<FontFamily x:Key="PhoneFontFamilySemiLight">Segoe WP SemiLight</FontFamily> |
||||
|
<FontFamily x:Key="PivotHeaderItemFontFamily">XamlAutoFontFamily</FontFamily> |
||||
|
<FontFamily x:Key="PivotTitleFontFamily">XamlAutoFontFamily</FontFamily> |
||||
|
<FontFamily x:Key="SettingsFlyoutHeaderThemeFontFamily">XamlAutoFontFamily</FontFamily> |
||||
|
<FontFamily x:Key="SymbolThemeFontFamily">Segoe MDL2 Assets</FontFamily> |
||||
|
<FontFamily x:Key="KeyTipFontFamily">XamlAutoFontFamily</FontFamily> |
||||
|
<x:Double x:Key="AppBarExpandButtonThemeHeight">24</x:Double> |
||||
|
<x:Double x:Key="AppBarExpandButtonThemeWidth">48</x:Double> |
||||
|
<x:Double x:Key="AppBarThemeMinHeight">56</x:Double> |
||||
|
<x:Double x:Key="AppBarThemeMinimalHeight">24</x:Double> |
||||
|
<x:Double x:Key="AppBarThemeCompactHeight">40</x:Double> |
||||
|
<x:Double x:Key="AppBarExpandButtonCircleDiameter">3</x:Double> |
||||
|
<x:Double x:Key="AutoCompleteListMaxHeight">374</x:Double> |
||||
|
<x:Double x:Key="AutoCompleteListBorderOpacity">0</x:Double> |
||||
|
<Thickness x:Key="CheckBoxBorderThemeThickness">2</Thickness> |
||||
|
<Thickness x:Key="CheckBoxCheckedStrokeThickness">0</Thickness> |
||||
|
<x:Double x:Key="ComboBoxArrowThemeFontSize">21</x:Double> |
||||
|
<x:Double x:Key="ComboBoxThemeMinWidth">64</x:Double> |
||||
|
<x:Double x:Key="ComboBoxPopupThemeMinWidth">80</x:Double> |
||||
|
<x:Double x:Key="ComboBoxPopupThemeTouchMinWidth">240</x:Double> |
||||
|
<x:Double x:Key="ControlContentThemeFontSize">14</x:Double> |
||||
|
<x:Double x:Key="ContentControlFontSize">14</x:Double> |
||||
|
<x:Double x:Key="ContentDialogMinWidth">320</x:Double> |
||||
|
<x:Double x:Key="ContentDialogMaxWidth">548</x:Double> |
||||
|
<x:Double x:Key="ContentDialogMinHeight">184</x:Double> |
||||
|
<x:Double x:Key="ContentDialogMaxHeight">756</x:Double> |
||||
|
<x:Double x:Key="ContentDialogButtonMinWidth">130</x:Double> |
||||
|
<x:Double x:Key="ContentDialogButtonMaxWidth">202</x:Double> |
||||
|
<x:Double x:Key="ContentDialogButtonMinHeight">32</x:Double> |
||||
|
<x:Double x:Key="ContentDialogButtonHeight">32</x:Double> |
||||
|
<x:Double x:Key="ContentDialogTitleMaxHeight">56</x:Double> |
||||
|
<x:Double x:Key="DatePickerSelectorThemeMinWidth">80</x:Double> |
||||
|
<x:Double x:Key="DatePickerSpacingThemeWidth">20</x:Double> |
||||
|
<x:Double x:Key="DatePickerSpacingThemeHeight">20</x:Double> |
||||
|
<x:Double x:Key="FlyoutThemeMaxHeight">758</x:Double> |
||||
|
<x:Double x:Key="FlyoutThemeMaxWidth">456</x:Double> |
||||
|
<x:Double x:Key="FlyoutThemeMinHeight">40</x:Double> |
||||
|
<x:Double x:Key="FlyoutThemeMinWidth">96</x:Double> |
||||
|
<x:Double x:Key="FlyoutThemeTouchMinWidth">240</x:Double> |
||||
|
<x:Double x:Key="GridViewItemSelectedBorderThemeThickness">4</x:Double> |
||||
|
<x:Double x:Key="HubHeaderThemeFontSize">34</x:Double> |
||||
|
<x:Double x:Key="HubSectionHeaderThemeFontSize">20</x:Double> |
||||
|
<x:Double x:Key="HubSectionHeaderSeeMoreThemeFontSize">14</x:Double> |
||||
|
<x:Double x:Key="ListPickerFlyoutFooterThemeHeight">80</x:Double> |
||||
|
<x:Double x:Key="GridViewItemReorderHintThemeOffset">16.0</x:Double> |
||||
|
<x:Double x:Key="MTCControlPanelHeight">42</x:Double> |
||||
|
<x:Double x:Key="MTCHorizontalVolumeSliderWidth">180</x:Double> |
||||
|
<x:Double x:Key="MTCMediaFontSize">12</x:Double> |
||||
|
<x:Double x:Key="MTCMediaButtonHeight">48</x:Double> |
||||
|
<x:Double x:Key="MTCMediaButtonWidth">48</x:Double> |
||||
|
<x:Double x:Key="MTCPositionSliderMinimumWidth">96</x:Double> |
||||
|
<x:Double x:Key="MTCSideMargins">16</x:Double> |
||||
|
<x:Double x:Key="MTCTimeButtonHeight">21</x:Double> |
||||
|
<x:Double x:Key="MTCTimeButtonWidth">62</x:Double> |
||||
|
<x:Double x:Key="MTCVerticalVolumeHostVerticalOffset">-112</x:Double> |
||||
|
<x:Double x:Key="MTCVerticalVolumeHostWidth">42</x:Double> |
||||
|
<x:Double x:Key="MTCVerticalVolumeSliderMaxHeight">289</x:Double> |
||||
|
<x:Double x:Key="MTCVerticalVolumeSliderMinHeight">96</x:Double> |
||||
|
<x:Double x:Key="MTCVerticalVolumeSliderTopGap">8</x:Double> |
||||
|
<x:Double x:Key="MTCVerticalVolumeSliderTopPadding">16</x:Double> |
||||
|
<x:Double x:Key="PivotHeaderItemFontSize">24</x:Double> |
||||
|
<x:Double x:Key="PivotHeaderItemLockedTranslation">40</x:Double> |
||||
|
<x:Double x:Key="PivotTitleFontSize">14</x:Double> |
||||
|
<x:Double x:Key="ProgressBarIndicatorPauseOpacity">0.6</x:Double> |
||||
|
<x:Double x:Key="ProgressBarThemeMinHeight">4</x:Double> |
||||
|
<x:Double x:Key="RadioButtonBorderThemeThickness">2</x:Double> |
||||
|
<x:Double x:Key="ScrollBarTrackBorderThemeThickness">0</x:Double> |
||||
|
<x:Double x:Key="SearchBoxContentThemeFontSize">14</x:Double> |
||||
|
<x:Double x:Key="SearchBoxResultSuggestionImageThemeWidth">32</x:Double> |
||||
|
<x:Double x:Key="SearchBoxResultSuggestionImageThemeHeight">32</x:Double> |
||||
|
<x:Double x:Key="SearchBoxSuggestionPopupThemeMinWidth">270</x:Double> |
||||
|
<x:Double x:Key="SearchBoxSuggestionPopupThemeMaxHeight">300</x:Double> |
||||
|
<x:Double x:Key="SearchBoxTextBoxThemeMinHeight">28</x:Double> |
||||
|
<x:Double x:Key="SemanticZoomButtonFontSize">4</x:Double> |
||||
|
<x:Double x:Key="SettingsFlyoutHeaderThemeFontSize">26.667</x:Double> |
||||
|
|
||||
|
<x:Double x:Key="SliderOutsideTickBarThemeHeight">4</x:Double> |
||||
|
<x:Double x:Key="SliderTrackThemeHeight">2</x:Double> |
||||
|
<x:Double x:Key="SplitViewOpenPaneThemeLength">320</x:Double> |
||||
|
<x:Double x:Key="SplitViewCompactPaneThemeLength">48</x:Double> |
||||
|
<x:Double x:Key="TextControlBackgroundThemeOpacity">0.8</x:Double> |
||||
|
<x:Double x:Key="TextControlBorderThemeOpacity">0.8</x:Double> |
||||
|
<x:Double x:Key="TextControlBorderThemeBrushOpacity">1</x:Double> |
||||
|
<x:Double x:Key="TextControlPointerOverBackgroundThemeOpacity">0.87</x:Double> |
||||
|
<x:Double x:Key="TextControlPointerOverBorderThemeOpacity">0.87</x:Double> |
||||
|
<x:Double x:Key="TextControlPointerOverBorderThemeBrushOpacity">1</x:Double> |
||||
|
<x:Double x:Key="TextControlBackgroundRestOpacity">0.4</x:Double> |
||||
|
<x:Double x:Key="TextControlBackgroundHoverOpacity">0.6</x:Double> |
||||
|
<x:Double x:Key="TextControlBackgroundFocusedOpacity">1</x:Double> |
||||
|
<x:Double x:Key="TextControlThemeMinHeight">32</x:Double> |
||||
|
<x:Double x:Key="TextControlThemeMinWidth">64</x:Double> |
||||
|
<x:Double x:Key="TextStyleLargeFontSize">18.14</x:Double> |
||||
|
<x:Double x:Key="TextStyleExtraLargeFontSize">25.5</x:Double> |
||||
|
|
||||
|
<x:Double x:Key="TimePickerSelectorThemeMinWidth">80</x:Double> |
||||
|
<x:Double x:Key="ToolTipContentThemeFontSize">12</x:Double> |
||||
|
<x:Double x:Key="ListViewHeaderItemMinHeight">44</x:Double> |
||||
|
<x:Double x:Key="GridViewHeaderItemMinHeight">44</x:Double> |
||||
|
<x:Double x:Key="ListViewHeaderItemThemeFontSize">20</x:Double> |
||||
|
<x:Double x:Key="GridViewHeaderItemThemeFontSize">20</x:Double> |
||||
|
|
||||
|
<x:Double x:Key="ToggleSwitchOnStrokeThickness">0</x:Double> |
||||
|
<x:Double x:Key="GridViewItemMinWidth">44</x:Double> |
||||
|
<x:Double x:Key="GridViewItemMinHeight">44</x:Double> |
||||
|
<x:Double x:Key="KeyTipContentThemeFontSize">12</x:Double> |
||||
|
<x:Int32 x:Key="PivotHeaderItemCharacterSpacing">-25</x:Int32> |
||||
|
<Thickness x:Key="AppBarBottomBorderThemeThickness">0,0,0,0</Thickness> |
||||
|
<Thickness x:Key="AppBarBottomThemePadding">0,0,0,0</Thickness> |
||||
|
<Thickness x:Key="AppBarTopBorderThemeThickness">0,0,0,0</Thickness> |
||||
|
<Thickness x:Key="AppBarTopThemePadding">0,0,0,0</Thickness> |
||||
|
<Thickness x:Key="AppBarExpandButtonCircleInnerPadding">3,0,3,0</Thickness> |
||||
|
<Thickness x:Key="AutoCompleteListBorderThemeThickness">1</Thickness> |
||||
|
<Thickness x:Key="AutoCompleteListMargin">0,2,0,2</Thickness> |
||||
|
<Thickness x:Key="AutoCompleteListPadding">-1,0,-1,0</Thickness> |
||||
|
<Thickness x:Key="AutoCompleteListViewItemMargin">12,11,0,13</Thickness> |
||||
|
<Thickness x:Key="ButtonBorderThemeThickness">2</Thickness> |
||||
|
<Thickness x:Key="CalendarDatePickerBorderThemeThickness">2</Thickness> |
||||
|
<Thickness x:Key="ComboBoxBorderThemeThickness">2</Thickness> |
||||
|
<Thickness x:Key="ComboBoxDropdownBorderThickness">1</Thickness> |
||||
|
<Thickness x:Key="ComboBoxDropdownBorderPadding">0</Thickness> |
||||
|
<Thickness x:Key="ComboBoxDropdownContentMargin">0,4,0,4</Thickness> |
||||
|
<Thickness x:Key="ComboBoxHeaderThemeMargin">0,0,0,4</Thickness> |
||||
|
<Thickness x:Key="ComboBoxPopupBorderThemeThickness">2</Thickness> |
||||
|
<Thickness x:Key="ComboBoxItemThemePadding">11,5,11,7</Thickness> |
||||
|
<Thickness x:Key="ComboBoxItemThemeTouchPadding">11,11,11,13</Thickness> |
||||
|
<Thickness x:Key="ComboBoxItemThemeGameControllerPadding">11,11,11,13</Thickness> |
||||
|
<Thickness x:Key="ContentDialogBorderWidth">1</Thickness> |
||||
|
<Thickness x:Key="ContentDialogButton1HostMargin">0,0,4,0</Thickness> |
||||
|
<Thickness x:Key="ContentDialogButton2HostMargin">0,0,0,0</Thickness> |
||||
|
<Thickness x:Key="ContentDialogContentMargin">0,0,0,0</Thickness> |
||||
|
<Thickness x:Key="ContentDialogContentScrollViewerMargin">0,0,0,0</Thickness> |
||||
|
<Thickness x:Key="ContentDialogCommandSpaceMargin">0,24,0,0</Thickness> |
||||
|
<Thickness x:Key="ContentDialogTitleMargin">0,0,0,12</Thickness> |
||||
|
<Thickness x:Key="ContentDialogPadding">24,18,24,24</Thickness> |
||||
|
<Thickness x:Key="DatePickerHeaderThemeMargin">0,0,0,4</Thickness> |
||||
|
<Thickness x:Key="DateTimeFlyoutBorderThickness">1</Thickness> |
||||
|
<Thickness x:Key="DateTimeFlyoutBorderPadding">0</Thickness> |
||||
|
<Thickness x:Key="DateTimeFlyoutButtonBorderThickness">0</Thickness> |
||||
|
<Thickness x:Key="DateTimeFlyoutContentPanelPortraitThemeMargin">0,37,0,0</Thickness> |
||||
|
<Thickness x:Key="DateTimeFlyoutContentPanelLandscapeThemeMargin">0,19,0,0</Thickness> |
||||
|
<Thickness x:Key="DateTimeFlyoutTitleThemeMargin">19,0,19,17.5</Thickness> |
||||
|
<Thickness x:Key="FlipViewButtonBorderThemeThickness">0</Thickness> |
||||
|
<Thickness x:Key="FlyoutContentThemeMargin">0,0,0,0</Thickness> |
||||
|
<Thickness x:Key="FlyoutContentThemePadding">12,11,12,12</Thickness> |
||||
|
<Thickness x:Key="GridViewItemCompactSelectedBorderThemeThickness">4</Thickness> |
||||
|
<Thickness x:Key="GridViewItemMultiselectBorderThickness">2.5</Thickness> |
||||
|
<Thickness x:Key="HandwritingViewExpandedButtonMargin">5,6,5,6</Thickness> |
||||
|
<Thickness x:Key="HubSectionHeaderThemeMargin">0,0,0,9</Thickness> |
||||
|
<Thickness x:Key="HubSectionHeaderSeeMoreThemeMargin">24,0,0,11</Thickness> |
||||
|
<Thickness x:Key="HyperlinkButtonBorderThemeThickness">0</Thickness> |
||||
|
<Thickness x:Key="ListPickerFlyoutPresenterMultiselectCheckBoxMargin">0,9.5,0,0</Thickness> |
||||
|
<Thickness x:Key="ListPickerFlyoutPresenterItemMargin">0,0,0,19</Thickness> |
||||
|
<Thickness x:Key="PickerFlyoutContentPanelLandscapeThemeMargin">19,19,19,0</Thickness> |
||||
|
<Thickness x:Key="PickerFlyoutContentPanelPortraitThemeMargin">19,37,19,0</Thickness> |
||||
|
<Thickness x:Key="PickerFlyoutTitleThemeMargin">0,0,0,32.5</Thickness> |
||||
|
<Thickness x:Key="PivotHeaderItemMargin">12,0,12,0</Thickness> |
||||
|
<Thickness x:Key="PivotItemMargin">12,0,12,0</Thickness> |
||||
|
<Thickness x:Key="PivotLandscapeThemePadding">12,14,0,13</Thickness> |
||||
|
<Thickness x:Key="PivotNavButtonBorderThemeThickness">0</Thickness> |
||||
|
<Thickness x:Key="PivotNavButtonMargin">0,6,0,0</Thickness> |
||||
|
<Thickness x:Key="PivotPortraitThemePadding">12,14,0,13</Thickness> |
||||
|
<Thickness x:Key="ProgressBarBorderThemeThickness">0</Thickness> |
||||
|
<Thickness x:Key="RepeatButtonBorderThemeThickness">2</Thickness> |
||||
|
<Thickness x:Key="ScrollBarPanningBorderThemeThickness">1</Thickness> |
||||
|
<Thickness x:Key="SearchBoxQuerySuggestionThemeMargin">12,11,8,13</Thickness> |
||||
|
<Thickness x:Key="SearchBoxResultSuggestionThemeMargin">12,11,8,13</Thickness> |
||||
|
<Thickness x:Key="SearchBoxSeparatorSuggestionThemeMargin">12,11,8,13</Thickness> |
||||
|
<Thickness x:Key="SearchBoxSuggestionSubcomponentThemeMargin">0,0,12,0</Thickness> |
||||
|
<Thickness x:Key="SearchBoxThemePadding">12,4,8,4</Thickness> |
||||
|
<Thickness x:Key="SearchBoxIMECandidateListSeparatorThemeThickness">0,2,0,0</Thickness> |
||||
|
<Thickness x:Key="SearchBoxBorderThemeThickness">2</Thickness> |
||||
|
<Thickness x:Key="SliderBorderThemeThickness">0</Thickness> |
||||
|
<Thickness x:Key="SliderHeaderThemeMargin">0,0,0,4</Thickness> |
||||
|
<Thickness x:Key="SplitViewLeftBorderThemeThickness">0,0,1,0</Thickness> |
||||
|
<Thickness x:Key="SplitViewRightBorderThemeThickness">1,0,0,0</Thickness> |
||||
|
<Thickness x:Key="TextControlBorderThemeThickness">2</Thickness> |
||||
|
<Thickness x:Key="TextControlMarginThemeThickness">0,9.5,0,9.5</Thickness> |
||||
|
<Thickness x:Key="TextControlThemePadding">10,3,6,6</Thickness> |
||||
|
<Thickness x:Key="HelperButtonThemePadding">0,0,-2,0</Thickness> |
||||
|
<Thickness x:Key="TextControlPlaceholderThemePadding">12,5,10,5</Thickness> |
||||
|
<Thickness x:Key="TimePickerHeaderThemeMargin">0,0,0,4</Thickness> |
||||
|
<Thickness x:Key="TimePickerFirstHostThemeMargin">0,0,20,0</Thickness> |
||||
|
<Thickness x:Key="TimePickerThirdHostThemeMargin">20,0,0,0</Thickness> |
||||
|
<Thickness x:Key="ToggleButtonBorderThemeThickness">2</Thickness> |
||||
|
<Thickness x:Key="KeyTipBorderThemeThickness">1</Thickness> |
||||
|
<Thickness x:Key="KeyTipThemePadding">4</Thickness> |
||||
|
<FontWeight x:Key="ComboBoxHeaderThemeFontWeight">Normal</FontWeight> |
||||
|
<FontWeight x:Key="ComboBoxPlaceholderTextThemeFontWeight">SemiLight</FontWeight> |
||||
|
<FontWeight x:Key="DatePickerHeaderThemeFontWeight">Normal</FontWeight> |
||||
|
<FontWeight x:Key="PivotHeaderItemThemeFontWeight">SemiLight</FontWeight> |
||||
|
<FontWeight x:Key="PivotTitleThemeFontWeight">Bold</FontWeight> |
||||
|
<FontWeight x:Key="SearchBoxButtonThemeFontWeight">Normal</FontWeight> |
||||
|
<FontWeight x:Key="SearchBoxContentThemeFontWeight">Normal</FontWeight> |
||||
|
<FontWeight x:Key="TimePickerHeaderThemeFontWeight">Normal</FontWeight> |
||||
|
<FontWeight x:Key="SliderHeaderThemeFontWeight">Normal</FontWeight> |
||||
|
<FontWeight x:Key="HubHeaderThemeFontWeight">Light</FontWeight> |
||||
|
<FontWeight x:Key="HubSectionHeaderThemeFontWeight">Normal</FontWeight> |
||||
|
<GridLength x:Key="AppBarExpandButtonThemeWidthGridLength">48</GridLength> |
||||
|
<Thickness x:Key="MediaTransportControlsTitleSafeBounds">48,0,48,27</Thickness> |
||||
|
</Style.Resources> |
||||
|
</Style> |
||||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue