update to v1.2.0
No files matched your search
@@ -1,4 +1,5 @@
|
||||
/.vs
|
||||
/packages
|
||||
/HandyControl/bin/Debug
|
||||
/HandyControl/obj/Debug
|
||||
/HandyControl/bin/Release
|
||||
|
||||
@@ -1,3 +1,17 @@
|
||||
2018.09.04 Version 1.2.0
|
||||
* new controls
|
||||
- add Growl
|
||||
- add AnimationPath
|
||||
- add TransitioningContentControl
|
||||
|
||||
* new style
|
||||
- add ProgressBar
|
||||
- add TreeView
|
||||
|
||||
* other
|
||||
- update HandyControlDemo UI
|
||||
- the ScrollViewer will auto hidden
|
||||
|
||||
2018.08.31 Version 1.1.2
|
||||
* new controls
|
||||
- add CompareSlider
|
||||
|
||||
@@ -0,0 +1,188 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Animation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace HandyControl.Controls
|
||||
{
|
||||
public class AnimationPath : Shape
|
||||
{
|
||||
private bool _isLoaded;
|
||||
|
||||
/// <summary>
|
||||
/// 故事版
|
||||
/// </summary>
|
||||
private Storyboard _storyboard;
|
||||
|
||||
/// <summary>
|
||||
/// 路径
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty DataProperty = DependencyProperty.Register(nameof(Data),
|
||||
typeof(Geometry), typeof(AnimationPath), new FrameworkPropertyMetadata(null,
|
||||
OnPropertiesChanged));
|
||||
|
||||
private static void OnPropertiesChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
if (d is AnimationPath path)
|
||||
{
|
||||
path.UpdatePath();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 路径
|
||||
/// </summary>
|
||||
public Geometry Data
|
||||
{
|
||||
get => (Geometry)GetValue(DataProperty);
|
||||
set => SetValue(DataProperty, value);
|
||||
}
|
||||
|
||||
protected override Geometry DefiningGeometry => Data ?? Geometry.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 路径长度
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty PathLengthProperty = DependencyProperty.Register(
|
||||
"PathLength", typeof(double), typeof(AnimationPath), new FrameworkPropertyMetadata(default(double),
|
||||
OnPropertiesChanged));
|
||||
|
||||
/// <summary>
|
||||
/// 路径长度
|
||||
/// </summary>
|
||||
public double PathLength
|
||||
{
|
||||
get => (double)GetValue(PathLengthProperty);
|
||||
set => SetValue(PathLengthProperty, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 动画间隔时间
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty DurationProperty = DependencyProperty.Register(
|
||||
"Duration", typeof(Duration), typeof(AnimationPath), new FrameworkPropertyMetadata(new Duration(TimeSpan.FromSeconds(2)),
|
||||
OnPropertiesChanged));
|
||||
|
||||
/// <summary>
|
||||
/// 动画间隔时间
|
||||
/// </summary>
|
||||
public Duration Duration
|
||||
{
|
||||
get => (Duration)GetValue(DurationProperty);
|
||||
set => SetValue(DurationProperty, value);
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty IsPlayingProperty = DependencyProperty.Register(
|
||||
"IsPlaying", typeof(bool), typeof(AnimationPath), new FrameworkPropertyMetadata(true, (o, args) =>
|
||||
{
|
||||
var ctl = (AnimationPath)o;
|
||||
var v = (bool)args.NewValue;
|
||||
if (v)
|
||||
{
|
||||
ctl.UpdatePath();
|
||||
}
|
||||
else
|
||||
{
|
||||
ctl._storyboard?.Pause();
|
||||
}
|
||||
}));
|
||||
|
||||
/// <summary>
|
||||
/// 是否正在播放动画
|
||||
/// </summary>
|
||||
public bool IsPlaying
|
||||
{
|
||||
get => (bool)GetValue(IsPlayingProperty);
|
||||
set => SetValue(IsPlayingProperty, value);
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty RepeatBehaviorProperty = DependencyProperty.Register(
|
||||
"RepeatBehavior", typeof(RepeatBehavior), typeof(AnimationPath), new PropertyMetadata(RepeatBehavior.Forever));
|
||||
|
||||
/// <summary>
|
||||
/// 动画重复行为
|
||||
/// </summary>
|
||||
public RepeatBehavior RepeatBehavior
|
||||
{
|
||||
get => (RepeatBehavior)GetValue(RepeatBehaviorProperty);
|
||||
set => SetValue(RepeatBehaviorProperty, value);
|
||||
}
|
||||
|
||||
static AnimationPath()
|
||||
{
|
||||
StretchProperty.AddOwner(typeof(AnimationPath), new FrameworkPropertyMetadata(Stretch.Uniform,
|
||||
OnPropertiesChanged));
|
||||
|
||||
StrokeThicknessProperty.AddOwner(typeof(AnimationPath), new FrameworkPropertyMetadata(1.0,
|
||||
OnPropertiesChanged));
|
||||
}
|
||||
|
||||
public AnimationPath()
|
||||
{
|
||||
Loaded += (s, e) =>
|
||||
{
|
||||
if (_isLoaded) return;
|
||||
UpdatePath();
|
||||
_isLoaded = true;
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 动画完成事件
|
||||
/// </summary>
|
||||
public static readonly RoutedEvent CompletedEvent =
|
||||
EventManager.RegisterRoutedEvent("Completed", RoutingStrategy.Bubble,
|
||||
typeof(EventHandler), typeof(AnimationPath));
|
||||
|
||||
/// <summary>
|
||||
/// 动画完成事件
|
||||
/// </summary>
|
||||
public event EventHandler Completed
|
||||
{
|
||||
add => AddHandler(CompletedEvent, value);
|
||||
remove => RemoveHandler(CompletedEvent, value);
|
||||
}
|
||||
|
||||
private void UpdatePath()
|
||||
{
|
||||
if (!Duration.HasTimeSpan || !IsPlaying) return;
|
||||
StrokeDashOffset = PathLength;
|
||||
StrokeDashArray = new DoubleCollection(new List<double>
|
||||
{
|
||||
PathLength,
|
||||
PathLength
|
||||
});
|
||||
|
||||
//定义动画
|
||||
_storyboard = new Storyboard
|
||||
{
|
||||
RepeatBehavior = RepeatBehavior
|
||||
};
|
||||
_storyboard.Completed += (s, e) => RaiseEvent(new RoutedEventArgs(CompletedEvent));
|
||||
|
||||
var frames = new DoubleAnimationUsingKeyFrames();
|
||||
//开始位置
|
||||
var frame0 = new LinearDoubleKeyFrame
|
||||
{
|
||||
Value = PathLength,
|
||||
KeyTime = KeyTime.FromTimeSpan(TimeSpan.Zero)
|
||||
};
|
||||
//结束位置
|
||||
var frame1 = new LinearDoubleKeyFrame
|
||||
{
|
||||
Value = -PathLength,
|
||||
KeyTime = KeyTime.FromTimeSpan(Duration.TimeSpan)
|
||||
};
|
||||
frames.KeyFrames.Add(frame0);
|
||||
frames.KeyFrames.Add(frame1);
|
||||
|
||||
Storyboard.SetTarget(frames, this);
|
||||
Storyboard.SetTargetProperty(frames, new PropertyPath(StrokeDashOffsetProperty));
|
||||
_storyboard.Children.Add(frames);
|
||||
|
||||
_storyboard.Begin();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Media;
|
||||
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControl.Controls
|
||||
{
|
||||
public class BackgroundSwitchElement : DependencyObject
|
||||
{
|
||||
public static readonly DependencyProperty MouseHoverBackgroundProperty = DependencyProperty.RegisterAttached(
|
||||
"MouseHoverBackground", typeof(Brush), typeof(BackgroundSwitchElement), new PropertyMetadata(Brushes.Transparent));
|
||||
|
||||
public static void SetMouseHoverBackground(DependencyObject element, Brush value)
|
||||
{
|
||||
element.SetValue(MouseHoverBackgroundProperty, value);
|
||||
}
|
||||
|
||||
public static Brush GetMouseHoverBackground(DependencyObject element)
|
||||
{
|
||||
return (Brush)element.GetValue(MouseHoverBackgroundProperty);
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty MouseDownBackgroundProperty = DependencyProperty.RegisterAttached(
|
||||
"MouseDownBackground", typeof(Brush), typeof(BackgroundSwitchElement), new PropertyMetadata(Brushes.Transparent));
|
||||
|
||||
public static void SetMouseDownBackground(DependencyObject element, Brush value)
|
||||
{
|
||||
element.SetValue(MouseDownBackgroundProperty, value);
|
||||
}
|
||||
|
||||
public static Brush GetMouseDownBackground(DependencyObject element)
|
||||
{
|
||||
return (Brush)element.GetValue(MouseDownBackgroundProperty);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using System.Windows;
|
||||
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControl.Controls
|
||||
{
|
||||
public class BorderElement : DependencyObject
|
||||
{
|
||||
public static readonly DependencyProperty CornerRadiusProperty = DependencyProperty.RegisterAttached(
|
||||
"CornerRadius", typeof(CornerRadius), typeof(BorderElement), new PropertyMetadata(default(CornerRadius)));
|
||||
|
||||
public static void SetCornerRadius(DependencyObject element, CornerRadius value)
|
||||
{
|
||||
element.SetValue(CornerRadiusProperty, value);
|
||||
}
|
||||
|
||||
public static CornerRadius GetCornerRadius(DependencyObject element)
|
||||
{
|
||||
return (CornerRadius) element.GetValue(CornerRadiusProperty);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -75,24 +75,6 @@
|
||||
<TextBlock Foreground="{StaticResource ThirdlyTextBrush}" Margin="0,6,0,0" FontSize="10" Text="A" HorizontalAlignment="Center"></TextBlock>
|
||||
</StackPanel>
|
||||
</UniformGrid>
|
||||
<!--<UniformGrid Visibility="{Binding ShowList[2],ElementName=UserControlMain,Converter={StaticResource Boolean2VisibilityConverter}}" Rows="1" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="-2,14,-2,0" VerticalAlignment="Top">
|
||||
<StackPanel Margin="2,0">
|
||||
<controls:InfoTextBox TextPadding="0" Text="{Binding ColorInfoList[5],ElementName=UserControlMain}" FontSize="10" ShowSmallCornerRadius="True" MaxLength="3" ShowClearButton="False" HorizontalTextAlignment="Center" IsNeedly="False" Height="24" ></controls:InfoTextBox>
|
||||
<TextBlock Foreground="{StaticResource ThirdlyTextBrush}" Margin="0,6,0,0" FontSize="10" Text="H" HorizontalAlignment="Center"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Margin="2,0">
|
||||
<controls:InfoTextBox TextPadding="0" Text="{Binding ColorInfoList[6],ElementName=UserControlMain}" FontSize="10" ShowSmallCornerRadius="True" MaxLength="3" ShowClearButton="False" HorizontalTextAlignment="Center" IsNeedly="False" Height="24" ></controls:InfoTextBox>
|
||||
<TextBlock Foreground="{StaticResource ThirdlyTextBrush}" Margin="0,6,0,0" FontSize="10" Text="S" HorizontalAlignment="Center"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Margin="2,0">
|
||||
<controls:InfoTextBox TextPadding="0" Text="{Binding ColorInfoList[7],ElementName=UserControlMain}" FontSize="10" ShowSmallCornerRadius="True" MaxLength="3" ShowClearButton="False" HorizontalTextAlignment="Center" IsNeedly="False" Height="24" ></controls:InfoTextBox>
|
||||
<TextBlock Foreground="{StaticResource ThirdlyTextBrush}" Margin="0,6,0,0" FontSize="10" Text="L" HorizontalAlignment="Center"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Margin="2,0">
|
||||
<controls:InfoTextBox TextPadding="0" Text="{Binding ColorInfoList[8],ElementName=UserControlMain}" FontSize="10" ShowSmallCornerRadius="True" MaxLength="3" ShowClearButton="False" HorizontalTextAlignment="Center" IsNeedly="False" Height="24" ></controls:InfoTextBox>
|
||||
<TextBlock Foreground="{StaticResource ThirdlyTextBrush}" Margin="0,6,0,0" FontSize="10" Text="A" HorizontalAlignment="Center"></TextBlock>
|
||||
</StackPanel>
|
||||
</UniformGrid>-->
|
||||
<Button Click="ButtonSwitch_OnClick" Padding="6" FontSize="8" BorderThickness="0" Foreground="#323534" HorizontalAlignment="Right" Height="24" Width="20" Grid.Column="2" Grid.Row="1">
|
||||
<Button.Content>
|
||||
<Path Fill="#323534" Style="{StaticResource UpDownPathStyle}"></Path>
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
<UserControl x:Class="HandyControl.Controls.Growl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
MinHeight="60"
|
||||
Name="UserControlThis"
|
||||
Width="320"
|
||||
Margin="0,0,0,10"
|
||||
MaxWidth="320">
|
||||
<UserControl.Triggers>
|
||||
<EventTrigger RoutedEvent="UserControl.MouseEnter">
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Button.Visibility)" Storyboard.TargetName="ButtonClose">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</EventTrigger>
|
||||
<EventTrigger RoutedEvent="UserControl.MouseLeave">
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Button.Visibility)" Storyboard.TargetName="ButtonClose">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Collapsed}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</EventTrigger>
|
||||
</UserControl.Triggers>
|
||||
<Grid Name="GridMain" RenderTransformOrigin="0.5,0.5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="50"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Grid.ColumnSpan="3" Grid.RowSpan="2" Effect="{StaticResource EffectShadow2}" Background="#E5DEDEDE" CornerRadius="8" Width="320"></Border>
|
||||
<Path Grid.Row="0" Grid.Column="0" VerticalAlignment="Top" Margin="0,15,0,0" Width="30" Height="30" Data="{Binding Icon,ElementName=UserControlThis}" Stretch="Uniform" Fill="{Binding IconBrush,ElementName=UserControlThis}"></Path>
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" Margin="0,12,10,10">
|
||||
<TextBlock Text="{Binding Message,ElementName=UserControlThis}" Style="{StaticResource TextBlockDefault}" HorizontalAlignment="Left" TextWrapping="Wrap"></TextBlock>
|
||||
<TextBlock Text="{Binding Time,ElementName=UserControlThis,StringFormat=yyyy/MM/dd HH:mm:ss}" Style="{StaticResource TextBlockDefault}" Foreground="{StaticResource SecondaryTextBrush}" HorizontalAlignment="Left" Margin="0,4,0,0"></TextBlock>
|
||||
</StackPanel>
|
||||
<Button Grid.Row="0" Visibility="Collapsed" Margin="11,0" Name="ButtonClose" Click="ButtonClose_OnClick" Grid.Column="2" Background="Transparent" Style="{StaticResource ButtonOpacityStyle}" VerticalAlignment="Center" HorizontalAlignment="Center" Width="18" Height="18">
|
||||
<Path Data="{StaticResource ErrorGeometry}" Stretch="Uniform" Fill="{StaticResource SecondaryTextBrush}"></Path>
|
||||
</Button>
|
||||
<StackPanel Name="PanelMore" IsEnabled="False" Visibility="Collapsed" Orientation="Horizontal" Grid.Row="1" Grid.ColumnSpan="3" Height="28" Grid.Column="0">
|
||||
<Button Click="ButtonCancel_OnClick" Style="{StaticResource ButtonOpacityStyle}" Width="160">
|
||||
<TextBlock Text="取消" HorizontalAlignment="Center" Foreground="{StaticResource DangerBrush}"></TextBlock>
|
||||
</Button>
|
||||
<Button Click="ButtonOk_OnClick" Style="{StaticResource ButtonOpacityStyle}" Width="160">
|
||||
<TextBlock Text="确定" HorizontalAlignment="Center" Foreground="{StaticResource PrimaryBrush}"></TextBlock>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,239 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Animation;
|
||||
using System.Windows.Threading;
|
||||
using HandyControl.Interactivity;
|
||||
using HandyControl.Tools;
|
||||
using HandyControl.Tools.Extension;
|
||||
|
||||
namespace HandyControl.Controls
|
||||
{
|
||||
/// <summary>
|
||||
/// Growl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class Growl
|
||||
{
|
||||
/// <summary>
|
||||
/// 最大计数
|
||||
/// </summary>
|
||||
private const int MaxTickCount = 6;
|
||||
|
||||
public static readonly DependencyProperty MessageProperty = DependencyProperty.Register(
|
||||
"Message", typeof(string), typeof(Growl), new PropertyMetadata(default(string)));
|
||||
|
||||
public static readonly DependencyProperty TimeProperty = DependencyProperty.Register(
|
||||
"Time", typeof(DateTime), typeof(Growl), new PropertyMetadata(default(DateTime)));
|
||||
|
||||
public static readonly DependencyProperty IconProperty = DependencyProperty.Register(
|
||||
"Icon", typeof(Geometry), typeof(Growl), new PropertyMetadata(default(Geometry)));
|
||||
|
||||
public static readonly DependencyProperty IconBrushProperty = DependencyProperty.Register(
|
||||
"IconBrush", typeof(Brush), typeof(Growl), new PropertyMetadata(default(Brush)));
|
||||
|
||||
/// <summary>
|
||||
/// 消息容器
|
||||
/// </summary>
|
||||
private static Panel GrowlPanel;
|
||||
|
||||
/// <summary>
|
||||
/// 计数
|
||||
/// </summary>
|
||||
private int _tickCount;
|
||||
|
||||
/// <summary>
|
||||
/// 关闭计时器
|
||||
/// </summary>
|
||||
private DispatcherTimer _timerClose;
|
||||
|
||||
public Growl() => InitializeComponent();
|
||||
|
||||
private Action<Action, bool> CloseAction { get; set; }
|
||||
|
||||
public string Message
|
||||
{
|
||||
get => (string)GetValue(MessageProperty);
|
||||
set => SetValue(MessageProperty, value);
|
||||
}
|
||||
|
||||
public DateTime Time
|
||||
{
|
||||
get => (DateTime)GetValue(TimeProperty);
|
||||
set => SetValue(TimeProperty, value);
|
||||
}
|
||||
|
||||
public Geometry Icon
|
||||
{
|
||||
get => (Geometry)GetValue(IconProperty);
|
||||
set => SetValue(IconProperty, value);
|
||||
}
|
||||
|
||||
public Brush IconBrush
|
||||
{
|
||||
get => (Brush)GetValue(IconBrushProperty);
|
||||
set => SetValue(IconBrushProperty, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 开始计时器
|
||||
/// </summary>
|
||||
private void StartTimer()
|
||||
{
|
||||
_timerClose = new DispatcherTimer
|
||||
{
|
||||
Interval = TimeSpan.FromSeconds(1)
|
||||
};
|
||||
_timerClose.Tick += delegate
|
||||
{
|
||||
if (IsMouseOver)
|
||||
{
|
||||
_tickCount = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
_tickCount++;
|
||||
if (_tickCount >= MaxTickCount) Close();
|
||||
};
|
||||
_timerClose.Start();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 消息容器
|
||||
/// </summary>
|
||||
/// <param name="panel"></param>
|
||||
public static void SetGrowlPanel(Panel panel)
|
||||
{
|
||||
GrowlPanel = panel;
|
||||
var menuItem = new MenuItem
|
||||
{
|
||||
Header = "清空消息"
|
||||
};
|
||||
menuItem.Click += (s, e) =>
|
||||
{
|
||||
foreach (var item in GrowlPanel.Children.OfType<Growl>())
|
||||
{
|
||||
//if (item.CloseAction != null)
|
||||
//{
|
||||
// item.Close();
|
||||
//}
|
||||
item.Close();
|
||||
}
|
||||
};
|
||||
GrowlPanel.ContextMenu = new ContextMenu
|
||||
{
|
||||
Items =
|
||||
{
|
||||
menuItem
|
||||
}
|
||||
};
|
||||
var behavior = new FluidMoveBehavior
|
||||
{
|
||||
AppliesTo = FluidMoveScope.Children,
|
||||
Duration = new Duration(TimeSpan.FromMilliseconds(400)),
|
||||
EaseY = new PowerEase()
|
||||
};
|
||||
var collection = Interaction.GetBehaviors(GrowlPanel);
|
||||
collection.Add(behavior);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示信息
|
||||
/// </summary>
|
||||
private static void Show(string message, string iconKey, string iconBrushKey, Action<Action, bool> closeAction = null,
|
||||
bool staysOpen = false, bool showCloseButton = true)
|
||||
{
|
||||
var ctl = new Growl
|
||||
{
|
||||
Message = message,
|
||||
Time = DateTime.Now,
|
||||
Icon = ResourceHelper.GetResource<Geometry>(iconKey),
|
||||
IconBrush = ResourceHelper.GetResource<Brush>(iconBrushKey)
|
||||
};
|
||||
if (!showCloseButton) ctl.Triggers.Clear();
|
||||
|
||||
if (closeAction != null)
|
||||
{
|
||||
staysOpen = true;
|
||||
ctl.Triggers.Clear();
|
||||
ctl.PanelMore.IsEnabled = true;
|
||||
ctl.PanelMore.Show();
|
||||
ctl.CloseAction = closeAction;
|
||||
}
|
||||
|
||||
var transform = new TranslateTransform
|
||||
{
|
||||
X = ctl.MaxWidth
|
||||
};
|
||||
ctl.GridMain.RenderTransform = transform;
|
||||
GrowlPanel.Children.Insert(0, ctl);
|
||||
transform.BeginAnimation(TranslateTransform.XProperty, AnimationHelper.CreateAnimation(0));
|
||||
if (!staysOpen) ctl.StartTimer();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 成功
|
||||
/// </summary>
|
||||
public static void Success(string message) => Show(message, "SuccessGeometry", "SuccessBrush");
|
||||
|
||||
/// <summary>
|
||||
/// 消息
|
||||
/// </summary>
|
||||
public static void Info(string message) => Show(message, "InfoGeometry", "InfoBrush");
|
||||
|
||||
/// <summary>
|
||||
/// 错误
|
||||
/// </summary>
|
||||
public static void Error(string message) => Show(message, "ErrorGeometry", "DangerBrush", null, true);
|
||||
|
||||
/// <summary>
|
||||
/// 警告
|
||||
/// </summary>
|
||||
public static void Warning(string message) => Show(message, "WarningGeometry", "WarningBrush");
|
||||
|
||||
/// <summary>
|
||||
/// 严重
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
/// <param name="showContextMenu"></param>
|
||||
public static void Fatal(string message, bool showContextMenu = true)
|
||||
{
|
||||
if (!showContextMenu)
|
||||
{
|
||||
GrowlPanel.ContextMenu.Collapse();
|
||||
}
|
||||
Show(message, "FatalGeometry", "PrimaryTextBrush", null, true, false);
|
||||
}
|
||||
|
||||
public static void Ask(string message, Action<Action, bool> closeAction) => Show(message, "AskGeometry", "AccentBrush", closeAction);
|
||||
|
||||
private void ButtonClose_OnClick(object sender, RoutedEventArgs e) => Close();
|
||||
|
||||
/// <summary>
|
||||
/// 关闭
|
||||
/// </summary>
|
||||
private void Close()
|
||||
{
|
||||
_timerClose?.Stop();
|
||||
var transform = new TranslateTransform();
|
||||
GridMain.RenderTransform = transform;
|
||||
var animation = AnimationHelper.CreateAnimation(MaxWidth);
|
||||
animation.Completed += delegate { GrowlPanel.Children.Remove(this); };
|
||||
transform.BeginAnimation(TranslateTransform.XProperty, animation);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 清除
|
||||
/// </summary>
|
||||
public static void Clear()
|
||||
{
|
||||
GrowlPanel.Children.Clear();
|
||||
GrowlPanel.Show();
|
||||
}
|
||||
|
||||
private void ButtonCancel_OnClick(object sender, RoutedEventArgs e) => CloseAction?.Invoke(Close, false);
|
||||
|
||||
private void ButtonOk_OnClick(object sender, RoutedEventArgs e) => CloseAction?.Invoke(Close, true);
|
||||
}
|
||||
}
|
||||
@@ -49,22 +49,32 @@ namespace HandyControl.Controls
|
||||
/// <summary>
|
||||
/// 是否支持惯性
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty IsEnableInertiaProperty = DependencyProperty.Register(
|
||||
public static readonly DependencyProperty IsEnableInertiaProperty = DependencyProperty.RegisterAttached(
|
||||
"IsEnableInertia", typeof(bool), typeof(ScrollViewer), new PropertyMetadata(default(bool)));
|
||||
|
||||
public static void SetIsEnableInertia(DependencyObject element, bool value)
|
||||
{
|
||||
element.SetValue(IsEnableInertiaProperty, value);
|
||||
}
|
||||
|
||||
public static bool GetIsEnableInertia(DependencyObject element)
|
||||
{
|
||||
return (bool) element.GetValue(IsEnableInertiaProperty);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 是否支持惯性
|
||||
/// </summary>
|
||||
public bool IsEnableInertia
|
||||
{
|
||||
get => (bool) GetValue(IsEnableInertiaProperty);
|
||||
get => (bool)GetValue(IsEnableInertiaProperty);
|
||||
set => SetValue(IsEnableInertiaProperty, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 控件是否可以穿透点击
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty IsPenetratingProperty = DependencyProperty.Register(
|
||||
public static readonly DependencyProperty IsPenetratingProperty = DependencyProperty.RegisterAttached(
|
||||
"IsPenetrating", typeof(bool), typeof(ScrollViewer), new PropertyMetadata(default(bool)));
|
||||
|
||||
/// <summary>
|
||||
@@ -72,10 +82,20 @@ namespace HandyControl.Controls
|
||||
/// </summary>
|
||||
public bool IsPenetrating
|
||||
{
|
||||
get => (bool) GetValue(IsPenetratingProperty);
|
||||
get => (bool)GetValue(IsPenetratingProperty);
|
||||
set => SetValue(IsPenetratingProperty, value);
|
||||
}
|
||||
|
||||
public static void SetIsPenetrating(DependencyObject element, bool value)
|
||||
{
|
||||
element.SetValue(IsPenetratingProperty, value);
|
||||
}
|
||||
|
||||
public static bool GetIsPenetrating(DependencyObject element)
|
||||
{
|
||||
return (bool) element.GetValue(IsPenetratingProperty);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 当前垂直滚动偏移
|
||||
/// </summary>
|
||||
@@ -95,6 +115,7 @@ namespace HandyControl.Controls
|
||||
/// </summary>
|
||||
private double CurrentVerticalOffset
|
||||
{
|
||||
// ReSharper disable once UnusedMember.Local
|
||||
get => (double) GetValue(CurrentVerticalOffsetProperty);
|
||||
set => SetValue(CurrentVerticalOffsetProperty, value);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media.Animation;
|
||||
using HandyControl.Tools;
|
||||
|
||||
namespace HandyControl.Controls
|
||||
{
|
||||
[TemplateVisualState(GroupName = PresentationGroup, Name = NormalState)]
|
||||
[TemplateVisualState(GroupName = PresentationGroup, Name = DefaultTransitionState)]
|
||||
[TemplatePart(Name = PreviousContentPresentationSitePartName, Type = typeof(ContentControl))]
|
||||
[TemplatePart(Name = CurrentContentPresentationSitePartName, Type = typeof(ContentControl))]
|
||||
public class TransitioningContentControl : ContentControl
|
||||
{
|
||||
private Storyboard _currentTransition;
|
||||
|
||||
public TransitioningContentControl()
|
||||
{
|
||||
DefaultStyleKey = typeof(TransitioningContentControl);
|
||||
}
|
||||
|
||||
private Storyboard CurrentTransition
|
||||
{
|
||||
set
|
||||
{
|
||||
if (_currentTransition != null)
|
||||
_currentTransition.Completed -= OnTransitionCompleted;
|
||||
|
||||
_currentTransition = value;
|
||||
|
||||
if (_currentTransition != null)
|
||||
_currentTransition.Completed += OnTransitionCompleted;
|
||||
}
|
||||
}
|
||||
|
||||
#region Events
|
||||
|
||||
public event RoutedEventHandler TransitionCompleted;
|
||||
|
||||
#endregion Events
|
||||
|
||||
public override void OnApplyTemplate()
|
||||
{
|
||||
if (IsTransitioning)
|
||||
AbortTransition();
|
||||
|
||||
base.OnApplyTemplate();
|
||||
|
||||
PreviousContentPresentationSite =
|
||||
GetTemplateChild(PreviousContentPresentationSitePartName) as ContentPresenter;
|
||||
CurrentContentPresentationSite =
|
||||
GetTemplateChild(CurrentContentPresentationSitePartName) as ContentPresenter;
|
||||
|
||||
if (CurrentContentPresentationSite != null)
|
||||
CurrentContentPresentationSite.Content = Content;
|
||||
|
||||
var transition = GetStoryboard(Transition);
|
||||
CurrentTransition = transition;
|
||||
if (transition == null)
|
||||
{
|
||||
Transition = DefaultTransitionState;
|
||||
|
||||
throw new ArgumentException("TransitioningContentControl_TransitionNotFound");
|
||||
}
|
||||
|
||||
VisualStateManager.GoToState(this, NormalState, false);
|
||||
VisualStateManager.GoToState(this, Transition, true);
|
||||
}
|
||||
|
||||
protected override void OnContentChanged(object oldContent, object newContent)
|
||||
{
|
||||
base.OnContentChanged(oldContent, newContent);
|
||||
|
||||
StartTransition(oldContent, newContent);
|
||||
}
|
||||
|
||||
[SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "newContent", Justification = "Should be used in the future.")]
|
||||
private void StartTransition(object oldContent, object newContent)
|
||||
{
|
||||
if (CurrentContentPresentationSite != null && PreviousContentPresentationSite != null)
|
||||
{
|
||||
CurrentContentPresentationSite.Content = newContent;
|
||||
|
||||
PreviousContentPresentationSite.Content = oldContent;
|
||||
|
||||
if (!IsTransitioning || RestartTransitionOnContentChange)
|
||||
{
|
||||
IsTransitioning = true;
|
||||
VisualStateManager.GoToState(this, NormalState, false);
|
||||
VisualStateManager.GoToState(this, Transition, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTransitionCompleted(object sender, EventArgs e)
|
||||
{
|
||||
AbortTransition();
|
||||
|
||||
var handler = TransitionCompleted;
|
||||
handler?.Invoke(this, new RoutedEventArgs());
|
||||
}
|
||||
|
||||
public void AbortTransition()
|
||||
{
|
||||
VisualStateManager.GoToState(this, NormalState, false);
|
||||
IsTransitioning = false;
|
||||
if (PreviousContentPresentationSite != null)
|
||||
PreviousContentPresentationSite.Content = null;
|
||||
}
|
||||
|
||||
private Storyboard GetStoryboard(string newTransition)
|
||||
{
|
||||
var presentationGroup = VisualStates.TryGetVisualStateGroup(this, PresentationGroup);
|
||||
Storyboard newStoryboard = null;
|
||||
if (presentationGroup != null)
|
||||
newStoryboard = presentationGroup.States
|
||||
.OfType<VisualState>()
|
||||
.Where(state => state.Name == newTransition)
|
||||
.Select(state => state.Storyboard)
|
||||
.FirstOrDefault();
|
||||
return newStoryboard;
|
||||
}
|
||||
|
||||
#region Visual state names
|
||||
|
||||
private const string PresentationGroup = "PresentationStates";
|
||||
|
||||
private const string NormalState = "Normal";
|
||||
|
||||
public const string DefaultTransitionState = "DefaultTransition";
|
||||
|
||||
#endregion Visual state names
|
||||
|
||||
#region Template part names
|
||||
|
||||
internal const string PreviousContentPresentationSitePartName = "PreviousContentPresentationSite";
|
||||
|
||||
internal const string CurrentContentPresentationSitePartName = "CurrentContentPresentationSite";
|
||||
|
||||
#endregion Template part names
|
||||
|
||||
#region TemplateParts
|
||||
|
||||
private ContentPresenter CurrentContentPresentationSite { get; set; }
|
||||
|
||||
private ContentPresenter PreviousContentPresentationSite { get; set; }
|
||||
|
||||
#endregion TemplateParts
|
||||
|
||||
#region public bool IsTransitioning
|
||||
|
||||
private bool _allowIsTransitioningWrite;
|
||||
|
||||
public bool IsTransitioning
|
||||
{
|
||||
get => (bool)GetValue(IsTransitioningProperty);
|
||||
private set
|
||||
{
|
||||
_allowIsTransitioningWrite = true;
|
||||
SetValue(IsTransitioningProperty, value);
|
||||
_allowIsTransitioningWrite = false;
|
||||
}
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty IsTransitioningProperty =
|
||||
DependencyProperty.Register(
|
||||
"IsTransitioning",
|
||||
typeof(bool),
|
||||
typeof(TransitioningContentControl),
|
||||
new PropertyMetadata(OnIsTransitioningPropertyChanged));
|
||||
|
||||
private static void OnIsTransitioningPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
var source = (TransitioningContentControl)d;
|
||||
|
||||
if (!source._allowIsTransitioningWrite)
|
||||
{
|
||||
source.IsTransitioning = (bool)e.OldValue;
|
||||
throw new InvalidOperationException("TransitiotioningContentControl_IsTransitioningReadOnly");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion public bool IsTransitioning
|
||||
|
||||
#region public string Transition
|
||||
|
||||
public string Transition
|
||||
{
|
||||
get => GetValue(TransitionProperty) as string;
|
||||
set => SetValue(TransitionProperty, value);
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty TransitionProperty =
|
||||
DependencyProperty.Register(
|
||||
"Transition",
|
||||
typeof(string),
|
||||
typeof(TransitioningContentControl),
|
||||
new PropertyMetadata(DefaultTransitionState, OnTransitionPropertyChanged));
|
||||
|
||||
private static void OnTransitionPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
var source = (TransitioningContentControl)d;
|
||||
var oldTransition = e.OldValue as string;
|
||||
var newTransition = e.NewValue as string;
|
||||
|
||||
if (source.IsTransitioning)
|
||||
source.AbortTransition();
|
||||
|
||||
var newStoryboard = source.GetStoryboard(newTransition);
|
||||
|
||||
if (newStoryboard == null)
|
||||
if (VisualStates.TryGetVisualStateGroup(source, PresentationGroup) == null)
|
||||
{
|
||||
source.CurrentTransition = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
source.SetValue(TransitionProperty, oldTransition);
|
||||
|
||||
throw new ArgumentException(
|
||||
"TransitioningContentControl_TransitionNotFound");
|
||||
}
|
||||
else
|
||||
source.CurrentTransition = newStoryboard;
|
||||
}
|
||||
|
||||
#endregion public string Transition
|
||||
|
||||
#region public bool RestartTransitionOnContentChange
|
||||
|
||||
public bool RestartTransitionOnContentChange
|
||||
{
|
||||
get => (bool)GetValue(RestartTransitionOnContentChangeProperty);
|
||||
set => SetValue(RestartTransitionOnContentChangeProperty, value);
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty RestartTransitionOnContentChangeProperty =
|
||||
DependencyProperty.Register(
|
||||
"RestartTransitionOnContentChange",
|
||||
typeof(bool),
|
||||
typeof(TransitioningContentControl),
|
||||
new PropertyMetadata(false, OnRestartTransitionOnContentChangePropertyChanged));
|
||||
|
||||
private static void OnRestartTransitionOnContentChangePropertyChanged(DependencyObject d,
|
||||
DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
((TransitioningContentControl)d).OnRestartTransitionOnContentChangeChanged((bool)e.OldValue,
|
||||
(bool)e.NewValue);
|
||||
}
|
||||
|
||||
protected virtual void OnRestartTransitionOnContentChangeChanged(bool oldValue, bool newValue)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion public bool RestartTransitionOnContentChange
|
||||
}
|
||||
}
|
||||
@@ -33,6 +33,9 @@
|
||||
<DocumentationFile>bin\Release\HandyControl.xml</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Controls\AnimationPath.cs" />
|
||||
<Compile Include="Controls\Attach\BackgroundSwitchElement.cs" />
|
||||
<Compile Include="Controls\Attach\BorderElement.cs" />
|
||||
<Compile Include="Controls\Attach\IconSwitchElement.cs" />
|
||||
<Compile Include="Controls\Attach\StatusSwitchElement.cs" />
|
||||
<Compile Include="Controls\Carousel.xaml.cs">
|
||||
@@ -43,6 +46,9 @@
|
||||
</Compile>
|
||||
<Compile Include="Controls\Attach\IconElement.cs" />
|
||||
<Compile Include="Controls\CompareSlider.cs" />
|
||||
<Compile Include="Controls\Growl.xaml.cs">
|
||||
<DependentUpon>Growl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Controls\ScrollViewer.cs" />
|
||||
<Compile Include="Controls\Info\InfoControl.cs" />
|
||||
<Compile Include="Controls\Info\InfoNumericUpDown.xaml.cs">
|
||||
@@ -61,6 +67,7 @@
|
||||
<Compile Include="Controls\TimeBar\TimeBar.xaml.cs">
|
||||
<DependentUpon>TimeBar.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Controls\TransitioningContentControl.cs" />
|
||||
<Compile Include="Controls\Window\ImageBrowser.xaml.cs">
|
||||
<DependentUpon>ImageBrowser.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -122,6 +129,8 @@
|
||||
<Compile Include="Tools\MouseDragElementBehaviorEx.cs" />
|
||||
<Compile Include="Tools\RegularJudgment.cs" />
|
||||
<Compile Include="Tools\RegularPatterns.cs" />
|
||||
<Compile Include="Tools\ResourceHelper.cs" />
|
||||
<Compile Include="Tools\VisualStates.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\colorPickerBack.png" />
|
||||
@@ -135,6 +144,10 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Controls\Growl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Controls\Info\InfoNumericUpDown.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@@ -227,6 +240,10 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Themes\Styles\Base\ProgressBarBaseStyle.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Themes\Styles\Base\ScrollViewerBaseStyle.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@@ -271,6 +288,10 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Themes\Styles\ProgressBar.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Themes\Styles\ScrollViewer.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@@ -287,6 +308,10 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Themes\Styles\TreeView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Themes\Styles\Window.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("HandyControl")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyDescription("Contains some commonly used simple WPF controls")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("HandyControl")]
|
||||
@@ -10,5 +10,5 @@ using System.Runtime.InteropServices;
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: AssemblyVersion("1.1.2.0")]
|
||||
[assembly: AssemblyFileVersion("1.1.2.0")]
|
||||
[assembly: AssemblyVersion("1.2.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.2.0.0")]
|
||||
@@ -32,4 +32,5 @@
|
||||
<SolidColorBrush x:Key="AccentBrush" Color="{DynamicResource AccentColor}"></SolidColorBrush>
|
||||
<SolidColorBrush x:Key="DarkAccentBrush" Color="{DynamicResource DarkAccentColor}"></SolidColorBrush>
|
||||
|
||||
<SolidColorBrush x:Key="DarkMaskBrush" Color="{DynamicResource DarkMaskColor}"></SolidColorBrush>
|
||||
</ResourceDictionary>
|
||||
@@ -32,4 +32,5 @@
|
||||
<Color x:Key="AccentColor">#ff5722</Color>
|
||||
<Color x:Key="DarkAccentColor">#d43f3a</Color>
|
||||
|
||||
<Color x:Key="DarkMaskColor">#20000000</Color>
|
||||
</ResourceDictionary>
|
||||
@@ -7,84 +7,68 @@
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<Style x:Key="ButtonBaseStyle" BasedOn="{StaticResource ButtonBaseBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="controls:BorderElement.CornerRadius" Value="4"></Setter>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkMaskBrush}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type Button}">
|
||||
<Grid>
|
||||
<Border x:Name="border" CornerRadius="4" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="0" SnapsToDevicePixels="true">
|
||||
<!--点击时显示-->
|
||||
<Grid x:Name="PressedLayer" Visibility="Collapsed">
|
||||
<Rectangle Height="3" VerticalAlignment="Top" Fill="#1F000000" RadiusX="4" RadiusY="4">
|
||||
<Rectangle.Effect>
|
||||
<BlurEffect Radius="5"></BlurEffect>
|
||||
</Rectangle.Effect>
|
||||
</Rectangle>
|
||||
<Border CornerRadius="4" BorderBrush="#1F000000" BorderThickness="1,0">
|
||||
<Border.Effect>
|
||||
<BlurEffect Radius="3"></BlurEffect>
|
||||
</Border.Effect>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border BorderThickness="{TemplateBinding BorderThickness}">
|
||||
<Border Background="{TemplateBinding Background}" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}"></Border>
|
||||
<Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}">
|
||||
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
|
||||
</Border>
|
||||
<!--禁用时显示-->
|
||||
<Rectangle x:Name="EnabledLayer" Fill="#4CFFFFFF" RadiusX="4" RadiusY="4" Visibility="Collapsed"/>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsPressed" Value="true">
|
||||
<Setter TargetName="PressedLayer" Property="Visibility" Value="Visible"/>
|
||||
<Setter TargetName="border" Property="BorderBrush" Value="#80cccccc"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter TargetName="EnabledLayer" Property="Visibility" Value="Visible"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Opacity" Value=".9"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Opacity" Value=".6"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value=".2"></Setter>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ButtonIconBaseStyle" BasedOn="{StaticResource ButtonBaseBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Width" Value="{DynamicResource DefaultControlHeight}"/>
|
||||
<Setter Property="BorderThickness" Value="0"></Setter>
|
||||
<Setter Property="Padding" Value="8"></Setter>
|
||||
<Setter Property="controls:BorderElement.CornerRadius" Value="4"></Setter>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkMaskBrush}"/>
|
||||
<Setter Property="controls:IconElement.Angle" Value="0"></Setter>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type Button}">
|
||||
<Grid>
|
||||
<!--点击时显示-->
|
||||
<Ellipse x:Name="border" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}" Fill="{TemplateBinding Background}" SnapsToDevicePixels="true"></Ellipse>
|
||||
<Ellipse x:Name="PressedLayer" Visibility="Collapsed" Stroke="#1F000000" StrokeThickness="2">
|
||||
<Ellipse.Effect>
|
||||
<BlurEffect Radius="3"></BlurEffect>
|
||||
</Ellipse.Effect>
|
||||
</Ellipse>
|
||||
<ContentControl HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
|
||||
<Path Fill="{TemplateBinding Foreground}" SnapsToDevicePixels="True" Stretch="Uniform" Data="{TemplateBinding controls:IconElement.Geometry}" RenderTransformOrigin="0.5,0.5">
|
||||
<Path.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="{Binding Path=(controls:IconElement.Angle),RelativeSource={RelativeSource TemplatedParent}}"/>
|
||||
</TransformGroup>
|
||||
</Path.RenderTransform>
|
||||
</Path>
|
||||
</ContentControl>
|
||||
<!--禁用时显示-->
|
||||
<Ellipse x:Name="EnabledLayer" Fill="#4CFFFFFF" Visibility="Collapsed"/>
|
||||
<Border Background="{TemplateBinding Background}" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}"></Border>
|
||||
<Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}">
|
||||
<ContentControl HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
|
||||
<Path Fill="{TemplateBinding Foreground}" SnapsToDevicePixels="True" Stretch="Uniform" Data="{TemplateBinding controls:IconElement.Geometry}" RenderTransformOrigin="0.5,0.5">
|
||||
<Path.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="{Binding Path=(controls:IconElement.Angle),RelativeSource={RelativeSource TemplatedParent}}"/>
|
||||
</TransformGroup>
|
||||
</Path.RenderTransform>
|
||||
</Path>
|
||||
</ContentControl>
|
||||
</Border>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsPressed" Value="true">
|
||||
<Setter TargetName="PressedLayer" Property="Visibility" Value="Visible"/>
|
||||
<Setter TargetName="border" Property="Stroke" Value="#80cccccc"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter TargetName="EnabledLayer" Property="Visibility" Value="Visible"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Opacity" Value=".9"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Opacity" Value=".6"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value=".2"></Setter>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -0,0 +1,51 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<LinearGradientBrush x:Key="ProgressBarIndicatorAnimatedFill" StartPoint="0,0" EndPoint="1,0">
|
||||
<GradientStop Color="#00FFFFFF" Offset="0"/>
|
||||
<GradientStop Color="#60FFFFFF" Offset="0.4"/>
|
||||
<GradientStop Color="#60FFFFFF" Offset="0.6"/>
|
||||
<GradientStop Color="#00FFFFFF" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
|
||||
<Style x:Key="ProgressBarBaseStyle" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Height" Value="20"/>
|
||||
<Setter Property="Background" Value="#f5f5f5"/>
|
||||
<Setter Property="BorderBrush" Value="#19000000"/>
|
||||
<Setter Property="BorderThickness" Value="1,1,1,0"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ProgressBar}">
|
||||
<Grid>
|
||||
<Border x:Name="TemplateRoot" CornerRadius="4" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
|
||||
<Border.Effect>
|
||||
<BlurEffect Radius="2"></BlurEffect>
|
||||
</Border.Effect>
|
||||
</Border>
|
||||
<Grid Margin="{TemplateBinding BorderThickness}">
|
||||
<Rectangle x:Name="PART_Track"/>
|
||||
<Grid HorizontalAlignment="Left">
|
||||
<Decorator x:Name="PART_Indicator" HorizontalAlignment="Left" Margin="0,-1,0,0">
|
||||
<Border CornerRadius="4" x:Name="Animation" ClipToBounds="true" Background="{TemplateBinding Foreground}">
|
||||
<Rectangle x:Name="PART_GlowRect" Fill="{StaticResource ProgressBarIndicatorAnimatedFill}" HorizontalAlignment="Left" Margin="-100,0,0,0" Width="100"/>
|
||||
</Border>
|
||||
</Decorator>
|
||||
<TextBlock HorizontalAlignment="Center" Foreground="{DynamicResource TextIconBrush}" Text="{Binding Value,RelativeSource={RelativeSource FindAncestor,AncestorType=ProgressBar},StringFormat={}{0} %}"></TextBlock>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="Orientation" Value="Vertical">
|
||||
<Setter Property="LayoutTransform" TargetName="TemplateRoot">
|
||||
<Setter.Value>
|
||||
<RotateTransform Angle="-90"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -115,7 +115,25 @@
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<ControlTemplate x:Key="ScrollviewerBaseControlTemplate" TargetType="{x:Type controls:ScrollViewer}">
|
||||
<ControlTemplate x:Key="ScrollViewerBaseControlTemplate" TargetType="{x:Type controls:ScrollViewer}">
|
||||
<ControlTemplate.Resources>
|
||||
<Storyboard x:Key="Storyboard1">
|
||||
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_VerticalScrollBar">
|
||||
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value=".8"/>
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_HorizontalScrollBar">
|
||||
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value=".8"/>
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
<Storyboard x:Key="Storyboard2">
|
||||
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_VerticalScrollBar">
|
||||
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value="0"/>
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_HorizontalScrollBar">
|
||||
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value="0"/>
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</ControlTemplate.Resources>
|
||||
<Grid x:Name="Grid" Background="{TemplateBinding Background}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
@@ -125,17 +143,24 @@
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Rectangle x:Name="Corner" Grid.Column="1" StrokeThickness="0" Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Grid.Row="1"/>
|
||||
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="0" Margin="{TemplateBinding Padding}" Grid.Row="0"/>
|
||||
<ScrollBar x:Name="PART_VerticalScrollBar" Style="{StaticResource ScrollBarBaseStyle}" AutomationProperties.AutomationId="VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Grid.Row="0" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/>
|
||||
<ScrollBar x:Name="PART_HorizontalScrollBar" Style="{StaticResource ScrollBarBaseStyle}" AutomationProperties.AutomationId="HorizontalScrollBar" Cursor="Arrow" Grid.Column="0" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
|
||||
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" Grid.ColumnSpan="2" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="0" Margin="{TemplateBinding Padding}" Grid.Row="0"/>
|
||||
<ScrollBar x:Name="PART_VerticalScrollBar" Opacity="0.8" Style="{StaticResource ScrollBarBaseStyle}" AutomationProperties.AutomationId="VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Grid.Row="0" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/>
|
||||
<ScrollBar x:Name="PART_HorizontalScrollBar" Opacity="0.8" Style="{StaticResource ScrollBarBaseStyle}" AutomationProperties.AutomationId="HorizontalScrollBar" Cursor="Arrow" Grid.Column="0" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<EventTrigger RoutedEvent="MouseEnter">
|
||||
<BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
|
||||
</EventTrigger>
|
||||
<EventTrigger RoutedEvent="MouseLeave">
|
||||
<BeginStoryboard Storyboard="{StaticResource Storyboard2}"/>
|
||||
</EventTrigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
|
||||
<Style x:Key="ScrollViewerBaseStyle" TargetType="{x:Type controls:ScrollViewer}">
|
||||
<Setter Property="VerticalScrollBarVisibility" Value="Auto"></Setter>
|
||||
<Setter Property="Focusable" Value="False"/>
|
||||
<Setter Property="Template" Value="{StaticResource ScrollviewerBaseControlTemplate}"></Setter>
|
||||
<Setter Property="Template" Value="{StaticResource ScrollViewerBaseControlTemplate}"></Setter>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -1,49 +1,43 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls">
|
||||
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="ButtonBaseBaseStyle.xaml"></ResourceDictionary>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<Style x:Key="ToggleButtonBaseStyle" BasedOn="{StaticResource ButtonBaseBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="controls:BorderElement.CornerRadius" Value="4"></Setter>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkMaskBrush}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ToggleButton}">
|
||||
<Grid>
|
||||
<Border x:Name="border" CornerRadius="4" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="0" SnapsToDevicePixels="true">
|
||||
<!--点下时显示-->
|
||||
<Grid x:Name="CheckedLayer" Visibility="Collapsed">
|
||||
<Rectangle Height="3" VerticalAlignment="Top" Fill="#1F000000" RadiusX="4" RadiusY="4">
|
||||
<Rectangle.Effect>
|
||||
<BlurEffect Radius="5"></BlurEffect>
|
||||
</Rectangle.Effect>
|
||||
</Rectangle>
|
||||
<Border CornerRadius="4" BorderBrush="#1F000000" BorderThickness="1,0">
|
||||
<Border.Effect>
|
||||
<BlurEffect Radius="3"></BlurEffect>
|
||||
</Border.Effect>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border BorderThickness="{TemplateBinding BorderThickness}">
|
||||
<Border Background="{TemplateBinding Background}" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}"></Border>
|
||||
<Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}">
|
||||
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
|
||||
</Border>
|
||||
<!--禁用时显示-->
|
||||
<Rectangle x:Name="EnabledLayer" Fill="#4CFFFFFF" RadiusX="4" RadiusY="4" Visibility="Collapsed"/>
|
||||
<Border Visibility="Collapsed" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="BorderChecked" BorderThickness="4" BorderBrush="{TemplateBinding BorderBrush}"></Border>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsChecked" Value="true">
|
||||
<Setter TargetName="CheckedLayer" Property="Visibility" Value="Visible"/>
|
||||
<Setter TargetName="border" Property="BorderBrush" Value="#80cccccc"/>
|
||||
<Setter TargetName="border" Property="BorderThickness" Value="4"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter TargetName="EnabledLayer" Property="Visibility" Value="Visible"/>
|
||||
<Setter TargetName="BorderChecked" Property="Visibility" Value="Visible"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Opacity" Value=".9"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Opacity" Value=".6"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value=".2"></Setter>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -2,6 +2,7 @@
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls">
|
||||
|
||||
<!--引用自https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit-->
|
||||
<Style x:Key="ToggleButtonSwitchBaseStyle" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
|
||||
@@ -140,45 +141,46 @@
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToggleButtonIconBaseStyle" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"></Setter>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextIconBrush}"></Setter>
|
||||
<Setter Property="Width" Value="{DynamicResource DefaultControlHeight}"/>
|
||||
<Setter Property="Height" Value="{DynamicResource DefaultControlHeight}"/>
|
||||
<Setter Property="Padding" Value="8"></Setter>
|
||||
<Setter Property="controls:IconSwitchElement.Geometry" Value="{x:Null}"></Setter>
|
||||
<Setter Property="controls:IconSwitchElement.GeometrySelected" Value="{x:Null}"></Setter>
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
||||
<Setter Property="controls:BorderElement.CornerRadius" Value="4"></Setter>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkMaskBrush}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ToggleButton}">
|
||||
<Grid>
|
||||
<!--点击时显示-->
|
||||
<Ellipse x:Name="border" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}" Fill="{TemplateBinding Background}" SnapsToDevicePixels="true"></Ellipse>
|
||||
<Ellipse x:Name="PressedLayer" Visibility="Collapsed" Stroke="#1F000000" StrokeThickness="2">
|
||||
<Ellipse.Effect>
|
||||
<BlurEffect Radius="3"></BlurEffect>
|
||||
</Ellipse.Effect>
|
||||
</Ellipse>
|
||||
<ContentControl HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
|
||||
<Path x:Name="PathIcon" Fill="{TemplateBinding Foreground}" SnapsToDevicePixels="True" Stretch="Uniform" Data="{TemplateBinding controls:IconSwitchElement.Geometry}"></Path>
|
||||
</ContentControl>
|
||||
<!--禁用时显示-->
|
||||
<Ellipse x:Name="EnabledLayer" Fill="#4CFFFFFF" Visibility="Collapsed"/>
|
||||
<Border Background="{TemplateBinding Background}" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}"></Border>
|
||||
<Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}">
|
||||
<ContentControl HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
|
||||
<Path x:Name="PathIcon" Fill="{TemplateBinding Foreground}" SnapsToDevicePixels="True" Stretch="Uniform" Data="{TemplateBinding controls:IconSwitchElement.Geometry}"></Path>
|
||||
</ContentControl>
|
||||
</Border>
|
||||
<Border Visibility="Collapsed" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="BorderChecked" BorderThickness="4" BorderBrush="{TemplateBinding BorderBrush}"></Border>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter TargetName="PathIcon" Property="Data" Value="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=(controls:IconSwitchElement.GeometrySelected)}"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="true">
|
||||
<Setter TargetName="PressedLayer" Property="Visibility" Value="Visible"/>
|
||||
<Setter TargetName="border" Property="Stroke" Value="#80cccccc"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter TargetName="EnabledLayer" Property="Visibility" Value="Visible"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Opacity" Value=".9"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Opacity" Value=".6"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value=".2"></Setter>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -9,64 +9,29 @@
|
||||
<!--Button-->
|
||||
<Style BasedOn="{StaticResource ButtonBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource DefaultBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkDefaultBrush}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkDefaultBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="ButtonPrimary" BasedOn="{StaticResource ButtonBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource PrimaryBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkPrimaryBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkPrimaryBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="ButtonSuccess" BasedOn="{StaticResource ButtonBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource SuccessBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkSuccessBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkSuccessBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="ButtonInfo" BasedOn="{StaticResource ButtonBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource InfoBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkInfoBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkInfoBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="ButtonWarning" BasedOn="{StaticResource ButtonBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource WarningBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkWarningBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkWarningBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="ButtonDanger" BasedOn="{StaticResource ButtonBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource DangerBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkDangerBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkDangerBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<!--ButtonIcon-->
|
||||
<Style x:Key="ButtonIconTransparent" BasedOn="{StaticResource ButtonIconBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="BorderBrush" Value="Transparent"/>
|
||||
<Setter Property="BorderThickness" Value="0"></Setter>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type Button}">
|
||||
@@ -84,99 +49,26 @@
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Opacity" Value=".9"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Opacity" Value=".6"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value=".2"></Setter>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="ButtonIconDefault" BasedOn="{StaticResource ButtonIconBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource DefaultBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkDefaultBrush}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkDefaultBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="ButtonIconPrimary" BasedOn="{StaticResource ButtonIconBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource PrimaryBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkPrimaryBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkPrimaryBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="ButtonIconSuccess" BasedOn="{StaticResource ButtonIconBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource SuccessBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkSuccessBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkSuccessBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="ButtonIconInfo" BasedOn="{StaticResource ButtonIconBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource InfoBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkInfoBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkInfoBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="ButtonIconWarning" BasedOn="{StaticResource ButtonIconBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource WarningBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkWarningBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkWarningBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="ButtonIconDanger" BasedOn="{StaticResource ButtonIconBaseStyle}" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="{DynamicResource DangerBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkDangerBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkDangerBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CommonButtonFeStyle" TargetType="{x:Type Button}">
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Foreground" Value="#bfcbd9"></Setter>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"></Setter>
|
||||
<Setter Property="RenderTransformOrigin" Value=".5,.5"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type Button}">
|
||||
<Border x:Name="border" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}">
|
||||
<ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Foreground" Value="#8c939d"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Foreground" Value="#bfcbd9"></Setter>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ButtonOpacityStyle" TargetType="{x:Type Button}">
|
||||
@@ -195,20 +87,22 @@
|
||||
<Border x:Name="Chrome" SnapsToDevicePixels="true" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
|
||||
<ContentPresenter Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Opacity" Value=".9"></Setter>
|
||||
<Setter Property="Background" TargetName="Chrome" Value="{Binding Path=(controls:BackgroundSwitchElement.MouseHoverBackground),RelativeSource={RelativeSource TemplatedParent}}"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Opacity" Value=".6"></Setter>
|
||||
<Setter Property="Background" TargetName="Chrome" Value="{Binding Path=(controls:BackgroundSwitchElement.MouseDownBackground),RelativeSource={RelativeSource TemplatedParent}}"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value=".2"></Setter>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Opacity" Value=".9"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Opacity" Value=".6"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value=".2"></Setter>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -33,7 +33,7 @@
|
||||
<ColumnDefinition Width="{TemplateBinding MinHeight}"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<ContentPresenter ContentSource="Header"></ContentPresenter>
|
||||
<ToggleButton Grid.Column="1" Padding="0" Margin="0,0,10,0" Width="12" Height="12" VerticalAlignment="Center" HorizontalAlignment="Right" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" controls:IconSwitchElement.Geometry="{StaticResource DownGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource UpGeometry}" Style="{StaticResource ToggleButtonIconTransparent}"></ToggleButton>
|
||||
<ToggleButton Foreground="{TemplateBinding Foreground}" Grid.Column="1" Padding="0" Margin="0,0,10,0" Width="12" Height="12" VerticalAlignment="Center" HorizontalAlignment="Right" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" controls:IconSwitchElement.Geometry="{StaticResource DownGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource UpGeometry}" Style="{StaticResource ToggleButtonIconTransparent}"></ToggleButton>
|
||||
</Grid>
|
||||
</ToggleButton.Content>
|
||||
</ToggleButton>
|
||||
@@ -48,35 +48,6 @@
|
||||
<Setter Property="Opacity" Value="2"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
<!--<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="3" SnapsToDevicePixels="true">
|
||||
<DockPanel>
|
||||
<ToggleButton x:Name="HeaderSite" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" Content="{TemplateBinding Header}" DockPanel.Dock="Top" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}" FocusVisualStyle="{StaticResource ExpanderHeaderFocusVisual}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Margin="1" MinWidth="0" MinHeight="0" Padding="{TemplateBinding Padding}" Style="{StaticResource ExpanderDownHeaderStyle}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
|
||||
<ContentPresenter x:Name="ExpandSite" DockPanel.Dock="Bottom" Focusable="false" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Visibility="Collapsed" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
|
||||
</DockPanel>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsExpanded" Value="true">
|
||||
<Setter Property="Visibility" TargetName="ExpandSite" Value="Visible"/>
|
||||
</Trigger>
|
||||
<Trigger Property="ExpandDirection" Value="Right">
|
||||
<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Right"/>
|
||||
<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Left"/>
|
||||
<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderRightHeaderStyle}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="ExpandDirection" Value="Up">
|
||||
<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Top"/>
|
||||
<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Bottom"/>
|
||||
<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderUpHeaderStyle}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="ExpandDirection" Value="Left">
|
||||
<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Left"/>
|
||||
<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Right"/>
|
||||
<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderLeftHeaderStyle}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>-->
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
|
||||
@@ -0,0 +1,230 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="Base/ProgressBarBaseStyle.xaml"></ResourceDictionary>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<Style BasedOn="{StaticResource ProgressBarBaseStyle}" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryBrush}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ProgressBarSuccess" BasedOn="{StaticResource ProgressBarBaseStyle}" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Foreground" Value="{DynamicResource SuccessBrush}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ProgressBarInfo" BasedOn="{StaticResource ProgressBarBaseStyle}" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Foreground" Value="{DynamicResource InfoBrush}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ProgressBarWarning" BasedOn="{StaticResource ProgressBarBaseStyle}" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Foreground" Value="{DynamicResource WarningBrush}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ProgressBarDanger" BasedOn="{StaticResource ProgressBarBaseStyle}" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Foreground" Value="{DynamicResource DangerBrush}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ProgressBarPrimaryStripe" BasedOn="{StaticResource ProgressBarBaseStyle}" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Foreground">
|
||||
<Setter.Value>
|
||||
<DrawingBrush Viewport="0,0,20,32" TileMode="Tile" ViewportUnits="Absolute" Stretch="None">
|
||||
<DrawingBrush.Transform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="20"/>
|
||||
<TranslateTransform x:Name="MyTransform" X="0"/>
|
||||
</TransformGroup>
|
||||
</DrawingBrush.Transform>
|
||||
<DrawingBrush.Drawing>
|
||||
<GeometryDrawing>
|
||||
<GeometryDrawing.Brush>
|
||||
<LinearGradientBrush EndPoint="1,0" StartPoint="0,0">
|
||||
<GradientStop Color="{DynamicResource PrimaryColor}" Offset="0"/>
|
||||
<GradientStop Color="{DynamicResource PrimaryColor}" Offset="0.5"/>
|
||||
<GradientStop Color="White" Offset="0.5"/>
|
||||
<GradientStop Color="White" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
</GeometryDrawing.Brush>
|
||||
<GeometryDrawing.Geometry>
|
||||
<RectangleGeometry Rect="0,0,20,32"></RectangleGeometry>
|
||||
</GeometryDrawing.Geometry>
|
||||
</GeometryDrawing>
|
||||
</DrawingBrush.Drawing>
|
||||
</DrawingBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ProgressBar}">
|
||||
<ControlTemplate.Resources>
|
||||
<Storyboard x:Key="OnLoaded">
|
||||
<DoubleAnimationUsingKeyFrames RepeatBehavior="Forever" Storyboard.TargetProperty="(Border.Background).(Brush.Transform).(TransformGroup.Children)[1].(TranslateTransform.X)" Storyboard.TargetName="Indicator">
|
||||
<LinearDoubleKeyFrame KeyTime="0" Value="0"/>
|
||||
<LinearDoubleKeyFrame KeyTime="0:0:.25" Value="21"/>
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</ControlTemplate.Resources>
|
||||
<Grid x:Name="TemplateRoot" SnapsToDevicePixels="true">
|
||||
<Border CornerRadius="4" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
|
||||
<Border.Effect>
|
||||
<BlurEffect Radius="2"></BlurEffect>
|
||||
</Border.Effect>
|
||||
</Border>
|
||||
<Rectangle x:Name="PART_Track" Margin="1"/>
|
||||
<Decorator x:Name="PART_Indicator" HorizontalAlignment="Left" Margin="1">
|
||||
<Grid x:Name="Foreground">
|
||||
<Border x:Name="Indicator" CornerRadius="4" Background="{TemplateBinding Foreground}"></Border>
|
||||
</Grid>
|
||||
</Decorator>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<EventTrigger RoutedEvent="FrameworkElement.Loaded" SourceName="Indicator">
|
||||
<BeginStoryboard Storyboard="{StaticResource OnLoaded}"/>
|
||||
</EventTrigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ProgressBarSuccessStripe" BasedOn="{StaticResource ProgressBarPrimaryStripe}" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Foreground">
|
||||
<Setter.Value>
|
||||
<DrawingBrush Viewport="0,0,20,32" TileMode="Tile" ViewportUnits="Absolute" Stretch="None">
|
||||
<DrawingBrush.Transform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="20"/>
|
||||
<TranslateTransform x:Name="MyTransform" X="0"/>
|
||||
</TransformGroup>
|
||||
</DrawingBrush.Transform>
|
||||
<DrawingBrush.Drawing>
|
||||
<GeometryDrawing>
|
||||
<GeometryDrawing.Brush>
|
||||
<LinearGradientBrush EndPoint="1,0" StartPoint="0,0">
|
||||
<GradientStop Color="{DynamicResource SuccessColor}" Offset="0"/>
|
||||
<GradientStop Color="{DynamicResource SuccessColor}" Offset="0.5"/>
|
||||
<GradientStop Color="White" Offset="0.5"/>
|
||||
<GradientStop Color="White" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
</GeometryDrawing.Brush>
|
||||
<GeometryDrawing.Geometry>
|
||||
<RectangleGeometry Rect="0,0,20,32"></RectangleGeometry>
|
||||
</GeometryDrawing.Geometry>
|
||||
</GeometryDrawing>
|
||||
</DrawingBrush.Drawing>
|
||||
</DrawingBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ProgressBarInfoStripe" BasedOn="{StaticResource ProgressBarPrimaryStripe}" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Foreground">
|
||||
<Setter.Value>
|
||||
<DrawingBrush Viewport="0,0,20,32" TileMode="Tile" ViewportUnits="Absolute" Stretch="None">
|
||||
<DrawingBrush.Transform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="20"/>
|
||||
<TranslateTransform x:Name="MyTransform" X="0"/>
|
||||
</TransformGroup>
|
||||
</DrawingBrush.Transform>
|
||||
<DrawingBrush.Drawing>
|
||||
<GeometryDrawing>
|
||||
<GeometryDrawing.Brush>
|
||||
<LinearGradientBrush EndPoint="1,0" StartPoint="0,0">
|
||||
<GradientStop Color="{DynamicResource InfoColor}" Offset="0"/>
|
||||
<GradientStop Color="{DynamicResource InfoColor}" Offset="0.5"/>
|
||||
<GradientStop Color="White" Offset="0.5"/>
|
||||
<GradientStop Color="White" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
</GeometryDrawing.Brush>
|
||||
<GeometryDrawing.Geometry>
|
||||
<RectangleGeometry Rect="0,0,20,32"></RectangleGeometry>
|
||||
</GeometryDrawing.Geometry>
|
||||
</GeometryDrawing>
|
||||
</DrawingBrush.Drawing>
|
||||
</DrawingBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ProgressBarWarningStripe" BasedOn="{StaticResource ProgressBarPrimaryStripe}" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Foreground">
|
||||
<Setter.Value>
|
||||
<DrawingBrush Viewport="0,0,20,32" TileMode="Tile" ViewportUnits="Absolute" Stretch="None">
|
||||
<DrawingBrush.Transform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="20"/>
|
||||
<TranslateTransform x:Name="MyTransform" X="0"/>
|
||||
</TransformGroup>
|
||||
</DrawingBrush.Transform>
|
||||
<DrawingBrush.Drawing>
|
||||
<GeometryDrawing>
|
||||
<GeometryDrawing.Brush>
|
||||
<LinearGradientBrush EndPoint="1,0" StartPoint="0,0">
|
||||
<GradientStop Color="{DynamicResource WarningColor}" Offset="0"/>
|
||||
<GradientStop Color="{DynamicResource WarningColor}" Offset="0.5"/>
|
||||
<GradientStop Color="White" Offset="0.5"/>
|
||||
<GradientStop Color="White" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
</GeometryDrawing.Brush>
|
||||
<GeometryDrawing.Geometry>
|
||||
<RectangleGeometry Rect="0,0,20,32"></RectangleGeometry>
|
||||
</GeometryDrawing.Geometry>
|
||||
</GeometryDrawing>
|
||||
</DrawingBrush.Drawing>
|
||||
</DrawingBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ProgressBarDangerStripe" BasedOn="{StaticResource ProgressBarPrimaryStripe}" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Foreground">
|
||||
<Setter.Value>
|
||||
<DrawingBrush Viewport="0,0,20,32" TileMode="Tile" ViewportUnits="Absolute" Stretch="None">
|
||||
<DrawingBrush.Transform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="20"/>
|
||||
<TranslateTransform x:Name="MyTransform" X="0"/>
|
||||
</TransformGroup>
|
||||
</DrawingBrush.Transform>
|
||||
<DrawingBrush.Drawing>
|
||||
<GeometryDrawing>
|
||||
<GeometryDrawing.Brush>
|
||||
<LinearGradientBrush EndPoint="1,0" StartPoint="0,0">
|
||||
<GradientStop Color="{DynamicResource DangerColor}" Offset="0"/>
|
||||
<GradientStop Color="{DynamicResource DangerColor}" Offset="0.5"/>
|
||||
<GradientStop Color="White" Offset="0.5"/>
|
||||
<GradientStop Color="White" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
</GeometryDrawing.Brush>
|
||||
<GeometryDrawing.Geometry>
|
||||
<RectangleGeometry Rect="0,0,20,32"></RectangleGeometry>
|
||||
</GeometryDrawing.Geometry>
|
||||
</GeometryDrawing>
|
||||
</DrawingBrush.Drawing>
|
||||
</DrawingBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ProgressBarFlat" TargetType="{x:Type ProgressBar}">
|
||||
<Setter Property="Height" Value="4"></Setter>
|
||||
<Setter Property="Background" Value="{DynamicResource BorderBrush}"></Setter>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryBrush}"></Setter>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ProgressBar}">
|
||||
<Grid x:Name="TemplateRoot" SnapsToDevicePixels="true">
|
||||
<Rectangle x:Name="PART_Track" Fill="{TemplateBinding Background}" StrokeThickness="0" Stroke="{TemplateBinding BorderBrush}"/>
|
||||
<Decorator x:Name="PART_Indicator" HorizontalAlignment="Left">
|
||||
<Grid x:Name="Foreground">
|
||||
<Rectangle x:Name="Indicator" Fill="{TemplateBinding Foreground}"/>
|
||||
</Grid>
|
||||
</Decorator>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -305,6 +305,9 @@
|
||||
<Setter Property="Stroke" TargetName="PathDown" Value="White"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsDragging" Value="true">
|
||||
<Setter Property="Background" TargetName="grip" Value="{StaticResource PrimaryBrush}"/>
|
||||
<Setter Property="Stroke" TargetName="PathUp" Value="White"/>
|
||||
<Setter Property="Stroke" TargetName="PathDown" Value="White"/>
|
||||
<Trigger.EnterActions>
|
||||
<BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
|
||||
</Trigger.EnterActions>
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
<ResourceDictionary Source="Border.xaml"></ResourceDictionary>
|
||||
<!--<ResourceDictionary Source="BulletCheckBox.xaml"></ResourceDictionary>-->
|
||||
<!--<ResourceDictionary Source="Label.xaml"></ResourceDictionary>-->
|
||||
<!--<ResourceDictionary Source="ProgressBar.xaml"></ResourceDictionary>-->
|
||||
<ResourceDictionary Source="ProgressBar.xaml"></ResourceDictionary>
|
||||
<ResourceDictionary Source="ScrollViewer.xaml"></ResourceDictionary>
|
||||
<ResourceDictionary Source="Slider.xaml"></ResourceDictionary>
|
||||
<!--<ResourceDictionary Source="Clock.xaml"></ResourceDictionary>-->
|
||||
<!--<ResourceDictionary Source="TreeView.xaml"></ResourceDictionary>-->
|
||||
<ResourceDictionary Source="TreeView.xaml"></ResourceDictionary>
|
||||
<!--<ResourceDictionary Source="DataGrid.xaml"></ResourceDictionary>-->
|
||||
<!--<ResourceDictionary Source="GroupBox.xaml"></ResourceDictionary>-->
|
||||
<ResourceDictionary Source="Pagination.xaml"></ResourceDictionary>
|
||||
|
||||
@@ -10,75 +10,59 @@
|
||||
<!--普通-->
|
||||
<Style BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource DefaultBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkDefaultBrush}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkDefaultBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToggleButtonPrimary" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource PrimaryBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkPrimaryBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkPrimaryBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToggleButtonSuccess" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource SuccessBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkSuccessBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkSuccessBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToggleButtonInfo" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource InfoBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkInfoBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkInfoBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToggleButtonWarning" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource WarningBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkWarningBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkWarningBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToggleButtonDanger" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource DangerBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource DarkDangerBrush}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource DarkDangerBrush}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<!--开关-->
|
||||
<Style x:Key="ToggleButtonSwitch" BasedOn="{StaticResource ToggleButtonSwitchBaseStyle}" TargetType="{x:Type ToggleButton}"></Style>
|
||||
<!--图标-->
|
||||
<Style x:Key="ToggleButtonIcon" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource DefaultBrush}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
|
||||
</Style>
|
||||
|
||||
<!--icon-->
|
||||
<Style x:Key="ToggleButtonIcon" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="{x:Type ToggleButton}"></Style>
|
||||
<Style x:Key="ToggleButtonIconPrimary" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource PrimaryBrush}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToggleButtonIconSuccess" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource SuccessBrush}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToggleButtonIconInfo" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource InfoBrush}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToggleButtonIconWarning" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource WarningBrush}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToggleButtonIconDanger" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="{DynamicResource DangerBrush}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToggleButtonIconTransparent" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="BorderBrush" Value="Transparent"/>
|
||||
<Setter Property="Foreground" Value="White"></Setter>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ToggleButton}">
|
||||
@@ -95,19 +79,12 @@
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Opacity" Value=".9"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Opacity" Value=".6"></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value=".2"></Setter>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<!--开关-->
|
||||
<Style x:Key="ToggleButtonSwitch" BasedOn="{StaticResource ToggleButtonSwitchBaseStyle}" TargetType="{x:Type ToggleButton}"></Style>
|
||||
|
||||
<!--自定义-->
|
||||
<Style x:Key="ToggleButtonOpacityStyle" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Background" Value="Transparent"></Setter>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"></Setter>
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls">
|
||||
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="../Basic/Converters.xaml"></ResourceDictionary>
|
||||
<ResourceDictionary Source="Base/BaseStyle.xaml"></ResourceDictionary>
|
||||
<ResourceDictionary Source="Base/ScrollViewerBaseStyle.xaml"></ResourceDictionary>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<PathGeometry x:Key="TreeArrow" Figures="M508.893248 762.931659a65.039498 65.039498 0 0 1-46.420659-19.485839L97.125746 371.004022c-25.143018-25.634319-24.752868-66.816849 0.881451-91.959868 25.648769-25.164693 66.809624-24.745643 91.959867 0.881451l318.933409 325.125238 318.933408-325.125238a65.025048 65.025048 0 0 1 92.841318 91.078417L555.313907 743.44582a65.025048 65.025048 0 0 1-46.420659 19.485839z"/>
|
||||
<Style x:Key="ExpandCollapseToggleStyle" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="Focusable" Value="False"/>
|
||||
<Setter Property="Width" Value="16"/>
|
||||
<Setter Property="Height" Value="16"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ToggleButton}">
|
||||
<Border Background="Transparent" Height="16" Padding="4" Width="16">
|
||||
<Path x:Name="ExpandPath" RenderTransformOrigin="0.5,0.5" Stretch="Uniform" Data="{StaticResource TreeArrow}" Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type TreeViewItem}}}">
|
||||
<Path.RenderTransform>
|
||||
<RotateTransform Angle="-90"/>
|
||||
</Path.RenderTransform>
|
||||
</Path>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter Property="RenderTransform" TargetName="ExpandPath">
|
||||
<Setter.Value>
|
||||
<RotateTransform Angle="0"/>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="{x:Type TreeViewItem}">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="Padding" Value="10,0"></Setter>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
|
||||
<Setter Property="BorderThickness" Value="0"></Setter>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="TreeViewItem">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="32"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
|
||||
<StackPanel Orientation="Horizontal" Margin="{Binding Converter={StaticResource TreeViewItemMarginConverter}, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type TreeViewItem}}}">
|
||||
<ToggleButton x:Name="Expander" ClickMode="Press" IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ExpandCollapseToggleStyle}"/>
|
||||
<ContentPresenter VerticalAlignment="Center" x:Name="PART_Header" ContentSource="Header" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<ItemsPresenter x:Name="ItemsHost" Grid.Row="1"/>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<MultiTrigger>
|
||||
<MultiTrigger.Conditions>
|
||||
<Condition Property="IsMouseOver" Value="true"/>
|
||||
<Condition Property="HasItems" Value="false"/>
|
||||
</MultiTrigger.Conditions>
|
||||
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource DarkDefaultBrush}"/>
|
||||
</MultiTrigger>
|
||||
<Trigger Property="IsExpanded" Value="false">
|
||||
<Setter Property="Visibility" TargetName="ItemsHost" Value="Collapsed"/>
|
||||
</Trigger>
|
||||
<Trigger Property="HasItems" Value="false">
|
||||
<Setter Property="Visibility" TargetName="Expander" Value="Hidden"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsSelected" Value="true">
|
||||
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource PrimaryBrush}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextIconBrush}"/>
|
||||
</Trigger>
|
||||
<MultiTrigger>
|
||||
<MultiTrigger.Conditions>
|
||||
<Condition Property="IsSelected" Value="true"/>
|
||||
<Condition Property="IsSelectionActive" Value="false"/>
|
||||
</MultiTrigger.Conditions>
|
||||
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightBrushKey}}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}}"/>
|
||||
</MultiTrigger>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="{x:Type TreeView}" BasedOn="{StaticResource BaseStyle}">
|
||||
<Setter Property="Background" Value="{DynamicResource TextIconBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"></Setter>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="FontSize" Value="14"></Setter>
|
||||
<Setter Property="Foreground" Value="Black"/>
|
||||
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
|
||||
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
|
||||
<Setter Property="ScrollViewer.PanningMode" Value="Both"/>
|
||||
<Setter Property="controls:ScrollViewer.IsEnableInertia" Value="False"></Setter>
|
||||
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="VirtualizingPanel.IsVirtualizing" Value="True"></Setter>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type TreeView}">
|
||||
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="true">
|
||||
<controls:ScrollViewer x:Name="_tv_scrollviewer_" IsEnableInertia="{Binding Path=(controls:ScrollViewer.IsEnableInertia),RelativeSource={RelativeSource TemplatedParent}}" Template="{StaticResource ScrollViewerBaseControlTemplate}" Background="{TemplateBinding Background}" CanContentScroll="false" Focusable="false" HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}">
|
||||
<ItemsPresenter/>
|
||||
</controls:ScrollViewer>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsEnabled" Value="false">
|
||||
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="VirtualizingPanel.IsVirtualizing" Value="true">
|
||||
<Setter Property="CanContentScroll" TargetName="_tv_scrollviewer_" Value="true"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="VirtualizingPanel.IsVirtualizing" Value="true">
|
||||
<Setter Property="ItemsPanel">
|
||||
<Setter.Value>
|
||||
<ItemsPanelTemplate>
|
||||
<VirtualizingStackPanel/>
|
||||
</ItemsPanelTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -125,4 +125,106 @@
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="controls:TransitioningContentControl">
|
||||
<Setter Property="IsTabStop" Value="False" />
|
||||
<Setter Property="Focusable" Value="False"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
|
||||
<Setter Property="VerticalContentAlignment" Value="Stretch" />
|
||||
<Setter Property="Transition" Value="DefaultTransition" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="controls:TransitioningContentControl">
|
||||
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2">
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup x:Name="PresentationStates">
|
||||
<VisualState x:Name="DefaultTransition">
|
||||
<Storyboard>
|
||||
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="PreviousContentPresentationSite" Storyboard.TargetProperty="(UIElement.Opacity)">
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00.300" Value="0"/>
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
<DoubleAnimation BeginTime="00:00:00" Duration="00:00:00.500" Storyboard.TargetName="CurrentContentPresentationSite" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)" From="50" To="0">
|
||||
<DoubleAnimation.EasingFunction>
|
||||
<CubicEase EasingMode="EaseOut" />
|
||||
</DoubleAnimation.EasingFunction>
|
||||
</DoubleAnimation>
|
||||
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="PreviousContentPresentationSite" Storyboard.TargetProperty="(UIElement.Opacity)">
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1" />
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00.100" Value="0" />
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Normal">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="PreviousContentPresentationSite" Storyboard.TargetProperty="(UIElement.Visibility)">
|
||||
<DiscreteObjectKeyFrame KeyTime="00:00:00">
|
||||
<DiscreteObjectKeyFrame.Value>
|
||||
<Visibility>Collapsed</Visibility>
|
||||
</DiscreteObjectKeyFrame.Value>
|
||||
</DiscreteObjectKeyFrame>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="UpTransition">
|
||||
<Storyboard>
|
||||
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CurrentContentPresentationSite" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="30" />
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00.300" Value="0" />
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="PreviousContentPresentationSite" Storyboard.TargetProperty="(UIElement.Opacity)">
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1" />
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00.300" Value="0" />
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="PreviousContentPresentationSite" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0" />
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00.300" Value="-30" />
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="DownTransition">
|
||||
<Storyboard>
|
||||
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CurrentContentPresentationSite" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="-40" />
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00.300" Value="0" />
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="PreviousContentPresentationSite" Storyboard.TargetProperty="(UIElement.Opacity)">
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1" />
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00.300" Value="0" />
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="PreviousContentPresentationSite" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0" />
|
||||
<SplineDoubleKeyFrame KeyTime="00:00:00.300" Value="40" />
|
||||
</DoubleAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<Grid>
|
||||
<ContentPresenter x:Name="PreviousContentPresentationSite" Content="{x:Null}" ContentTemplate="{TemplateBinding ContentTemplate}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
|
||||
<ContentPresenter.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform />
|
||||
<SkewTransform />
|
||||
<RotateTransform />
|
||||
<TranslateTransform />
|
||||
</TransformGroup>
|
||||
</ContentPresenter.RenderTransform>
|
||||
</ContentPresenter>
|
||||
<ContentPresenter x:Name="CurrentContentPresentationSite" Content="{x:Null}" ContentTemplate="{TemplateBinding ContentTemplate}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
|
||||
<ContentPresenter.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform />
|
||||
<SkewTransform />
|
||||
<RotateTransform />
|
||||
<TranslateTransform />
|
||||
</TransformGroup>
|
||||
</ContentPresenter.RenderTransform>
|
||||
</ContentPresenter>
|
||||
</Grid>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -0,0 +1,42 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
|
||||
namespace HandyControl.Tools
|
||||
{
|
||||
/// <summary>
|
||||
/// 资源帮助类
|
||||
/// </summary>
|
||||
public class ResourceHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取字符串
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetString(string key) => Application.Current.TryFindResource(key) as string;
|
||||
|
||||
/// <summary>
|
||||
/// 获取字符串
|
||||
/// </summary>
|
||||
/// <param name="separator"></param>
|
||||
/// <param name="keyArr"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetString(string separator = ";", params string[] keyArr) =>
|
||||
string.Join(separator, keyArr.Select(key => Application.Current.TryFindResource(key) as string).ToList());
|
||||
|
||||
/// <summary>
|
||||
/// 获取字符串
|
||||
/// </summary>
|
||||
/// <param name="keyArr"></param>
|
||||
/// <returns></returns>
|
||||
public static List<string> GetStringList(params string[] keyArr) => keyArr.Select(key => Application.Current.TryFindResource(key) as string).ToList();
|
||||
|
||||
/// <summary>
|
||||
/// 获取资源
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public static T GetResource<T>(string key) where T : class => Application.Current.TryFindResource(key) as T;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace HandyControl.Tools
|
||||
{
|
||||
public class VisualStates
|
||||
{
|
||||
public static VisualStateGroup TryGetVisualStateGroup(DependencyObject dependencyObject, string groupName)
|
||||
{
|
||||
var root = GetImplementationRoot(dependencyObject);
|
||||
if (root == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return VisualStateManager
|
||||
.GetVisualStateGroups(root)?
|
||||
.OfType<VisualStateGroup>()
|
||||
.FirstOrDefault(group => string.CompareOrdinal(groupName, group.Name) == 0);
|
||||
}
|
||||
|
||||
public static FrameworkElement GetImplementationRoot(DependencyObject dependencyObject)
|
||||
{
|
||||
return 1 == VisualTreeHelper.GetChildrenCount(dependencyObject)
|
||||
? VisualTreeHelper.GetChild(dependencyObject, 0) as FrameworkElement
|
||||
: null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,21 @@
|
||||
<Application x:Class="HandyControlDemo.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:viewModel="clr-namespace:HandyControlDemo.ViewModel"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:d1P1="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
d1P1:Ignorable="d"
|
||||
StartupUri="MainWindow.xaml">
|
||||
<Application.Resources>
|
||||
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="Resources/Lang/zh-cn.xaml"/>
|
||||
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/ThemesDefault.xaml"/>
|
||||
<ResourceDictionary Source="Resources/Themes/Style.xaml"/>
|
||||
<ResourceDictionary>
|
||||
<viewModel:ViewModelLocator x:Key="Locator" d:IsDataSource="True"/>
|
||||
</ResourceDictionary>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
namespace HandyControlDemo.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// 包含整个程序使用的所有标识
|
||||
/// </summary>
|
||||
internal class MessageToken
|
||||
{
|
||||
public static readonly string LoadGrowlDemoCtl = nameof(LoadGrowlDemoCtl);
|
||||
|
||||
public static readonly string LoadLoadingDemoCtl = nameof(LoadLoadingDemoCtl);
|
||||
|
||||
public static readonly string LoadImageBrowserDemoCtl = nameof(LoadImageBrowserDemoCtl);
|
||||
|
||||
public static readonly string LoadColorPickerDemoCtl = nameof(LoadColorPickerDemoCtl);
|
||||
|
||||
public static readonly string LoadCarouselDemoCtl = nameof(LoadCarouselDemoCtl);
|
||||
|
||||
public static readonly string LoadCompareSliderDemoCtl = nameof(LoadCompareSliderDemoCtl);
|
||||
|
||||
public static readonly string LoadTimeBarDemoCtl = nameof(LoadTimeBarDemoCtl);
|
||||
|
||||
public static readonly string LoadExpanderDemoCtl = nameof(LoadExpanderDemoCtl);
|
||||
|
||||
public static readonly string LoadPaginationDemoCtl = nameof(LoadPaginationDemoCtl);
|
||||
|
||||
public static readonly string LoadProgressBarDemoCtl = nameof(LoadProgressBarDemoCtl);
|
||||
|
||||
public static readonly string LoadAnimationPathDemoCtl = nameof(LoadAnimationPathDemoCtl);
|
||||
|
||||
public static readonly string LoadButtonDemoCtl = nameof(LoadButtonDemoCtl);
|
||||
|
||||
public static readonly string LoadToggleButtonDemoCtl = nameof(LoadToggleButtonDemoCtl);
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace HandyControlDemo.Data.Model
|
||||
{
|
||||
public class CellGateInfo
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public int Parent { get; set; }
|
||||
|
||||
public List<CellGateInfo> InfoList { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace HandyControlDemo.Data.Model
|
||||
{
|
||||
public class CellGateRecord
|
||||
{
|
||||
public string CellGateId { get; set; }
|
||||
|
||||
public string PersonId { get; set; }
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
public string Direction { get; set; }
|
||||
|
||||
public string DeviceId { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -34,8 +34,23 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="CommonServiceLocator, Version=2.0.2.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\CommonServiceLocator.2.0.2\lib\net45\CommonServiceLocator.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GalaSoft.MvvmLight, Version=5.4.1.0, Culture=neutral, PublicKeyToken=e7570ab207bcb616, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MvvmLightLibs.5.4.1\lib\net45\GalaSoft.MvvmLight.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GalaSoft.MvvmLight.Extras, Version=5.4.1.0, Culture=neutral, PublicKeyToken=669f0b5e8f868abf, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MvvmLightLibs.5.4.1\lib\net45\GalaSoft.MvvmLight.Extras.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GalaSoft.MvvmLight.Platform, Version=5.4.1.0, Culture=neutral, PublicKeyToken=5f873c45e98af8a1, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MvvmLightLibs.5.4.1\lib\net45\GalaSoft.MvvmLight.Platform.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MvvmLightLibs.5.4.1\lib\net45\System.Windows.Interactivity.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xaml">
|
||||
<RequiredTargetFramework>4.0</RequiredTargetFramework>
|
||||
</Reference>
|
||||
@@ -47,6 +62,61 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Compile Include="Data\MessageToken.cs" />
|
||||
<Compile Include="UserControl\ControlLocator.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>ControlLocator.tt</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Controls\AnimationPathDemoCtl.xaml.cs">
|
||||
<DependentUpon>AnimationPathDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Controls\CarouselDemoCtl.xaml.cs">
|
||||
<DependentUpon>CarouselDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Controls\ColorPickerDemoCtl.xaml.cs">
|
||||
<DependentUpon>ColorPickerDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Controls\CompareSliderDemoCtl.xaml.cs">
|
||||
<DependentUpon>CompareSliderDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Controls\GrowlDemoCtl.xaml.cs">
|
||||
<DependentUpon>GrowlDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Controls\ImageBrowserDemoCtl.xaml.cs">
|
||||
<DependentUpon>ImageBrowserDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Controls\LoadingDemoCtl.xaml.cs">
|
||||
<DependentUpon>LoadingDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Styles\ButtonDemoCtl.xaml.cs">
|
||||
<DependentUpon>ButtonDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Styles\ExpanderDemoCtl.xaml.cs">
|
||||
<DependentUpon>ExpanderDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Main\LeftMainContent.xaml.cs">
|
||||
<DependentUpon>LeftMainContent.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Main\MainContent.xaml.cs">
|
||||
<DependentUpon>MainContent.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Controls\PaginationDemoCtl.xaml.cs">
|
||||
<DependentUpon>PaginationDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Controls\TimeBarDemoCtl.xaml.cs">
|
||||
<DependentUpon>TimeBarDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Styles\ProgressBarDemoCtl.xaml.cs">
|
||||
<DependentUpon>ProgressBarDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl\Styles\ToggleButtonDemoCtl.xaml.cs">
|
||||
<DependentUpon>ToggleButtonDemoCtl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ViewModel\GrowlDemoViewModel.cs" />
|
||||
<Compile Include="ViewModel\ImageBrowserDemoViewModel.cs" />
|
||||
<Compile Include="ViewModel\MainViewModel.cs" />
|
||||
<Compile Include="ViewModel\ViewModelLocator.cs" />
|
||||
<Page Include="MainWindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -55,12 +125,86 @@
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Data\Model\CellGateInfo.cs" />
|
||||
<Compile Include="Data\Model\CellGateRecord.cs" />
|
||||
<Compile Include="MainWindow.xaml.cs">
|
||||
<DependentUpon>MainWindow.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Page Include="Resources\Lang\zh-cn.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Resources\Themes\Basic\Brushes.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Resources\Themes\Basic\Colors.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Resources\Themes\Style.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Controls\AnimationPathDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Controls\CarouselDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Controls\ColorPickerDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Controls\CompareSliderDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Controls\GrowlDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Controls\ImageBrowserDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Controls\LoadingDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Styles\ButtonDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Styles\ExpanderDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Main\LeftMainContent.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Main\MainContent.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Controls\PaginationDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Controls\TimeBarDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Styles\ProgressBarDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl\Styles\ToggleButtonDemoCtl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs">
|
||||
@@ -74,18 +218,33 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\1.jpg" />
|
||||
<Resource Include="Resources\2.jpg" />
|
||||
<Resource Include="Resources\3.jpg" />
|
||||
<Resource Include="Resources\4.jpg" />
|
||||
<Resource Include="Resources\5.jpg" />
|
||||
<Resource Include="Resources\Img\1.jpg" />
|
||||
<Resource Include="Resources\Img\2.jpg" />
|
||||
<Resource Include="Resources\Img\3.jpg" />
|
||||
<Resource Include="Resources\Img\4.jpg" />
|
||||
<Resource Include="Resources\Img\5.jpg" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\icon-white.png" />
|
||||
<Resource Include="Resources\Img\icon-white.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\b1.jpg" />
|
||||
<Resource Include="Resources\b2.jpg" />
|
||||
<Resource Include="Resources\Img\b1.jpg" />
|
||||
<Resource Include="Resources\Img\b2.jpg" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Window\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="UserControl\ControlLocator.tt">
|
||||
<Generator>TextTemplatingFileGenerator</Generator>
|
||||
<LastGenOutput>ControlLocator.cs</LastGenOutput>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -14,13 +14,14 @@
|
||||
WindowState="Maximized"
|
||||
Title="MainWindow"
|
||||
Name="MyWindow"
|
||||
DataContext="{Binding Main,Source={StaticResource Locator}}"
|
||||
d:DesignHeight="800"
|
||||
d:DesignWidth="1400">
|
||||
<controls:WindowBorderless.NoUserContent>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Border Margin="10,0,0,0" Width="16" Height="16">
|
||||
<Border.Background>
|
||||
<ImageBrush ImageSource="Resources/icon-white.png"/>
|
||||
<ImageBrush ImageSource="Resources/Img/icon-white.png"/>
|
||||
</Border.Background>
|
||||
</Border>
|
||||
<Menu Margin="10,0,0,0" WindowChrome.IsHitTestVisibleInChrome="True" Background="Transparent">
|
||||
@@ -38,917 +39,16 @@
|
||||
</Menu>
|
||||
</StackPanel>
|
||||
</controls:WindowBorderless.NoUserContent>
|
||||
<Grid Margin="32,0" Grid.IsSharedSizeScope="True">
|
||||
<controls:ScrollViewer>
|
||||
<StackPanel Margin="0,10" Name="StackPanelMain">
|
||||
<!--按钮-->
|
||||
<!--<Border Visibility="Collapsed" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="按钮"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(Button)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="1">
|
||||
<WrapPanel ItemWidth="160" ItemHeight="130">
|
||||
<StackPanel>
|
||||
<Button Content="默认" Margin="5"></Button>
|
||||
<Button IsEnabled="False" Content="默认" Margin="5"></Button>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Content="主要" Margin="5" Style="{StaticResource ButtonPrimary}"></Button>
|
||||
<Button IsEnabled="False" Content="主要" Margin="5" Style="{StaticResource ButtonPrimary}"></Button>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ButtonPrimary"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Content="成功" Margin="5" Style="{StaticResource ButtonSuccess}"></Button>
|
||||
<Button IsEnabled="False" Content="成功" Margin="5" Style="{StaticResource ButtonSuccess}"></Button>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ButtonSuccess"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Content="信息" Margin="5" Style="{StaticResource ButtonInfo}"></Button>
|
||||
<Button IsEnabled="False" Content="信息" Margin="5" Style="{StaticResource ButtonInfo}"></Button>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ButtonInfo"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Content="警告" Margin="5" Style="{StaticResource ButtonWarning}"></Button>
|
||||
<Button IsEnabled="False" Content="警告" Margin="5" Style="{StaticResource ButtonWarning}"></Button>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ButtonWarning"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Content="危险" Margin="5" Style="{StaticResource ButtonDanger}"></Button>
|
||||
<Button IsEnabled="False" Content="危险" Margin="5" Style="{StaticResource ButtonDanger}"></Button>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ButtonDanger"></TextBlock>
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
<WrapPanel ItemWidth="160" ItemHeight="130">
|
||||
<StackPanel>
|
||||
<Button Margin="5" Style="{StaticResource ButtonIconDefault}" controls:IconElement.Angle="45" controls:IconElement.Geometry="{StaticResource DeleteGeometry}"></Button>
|
||||
<Button IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconDefault}" controls:IconElement.Geometry="{StaticResource DeleteGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(DeleteGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Margin="5" Style="{StaticResource ButtonIconPrimary}" controls:IconElement.Geometry="{StaticResource ClockGeometry}"></Button>
|
||||
<Button IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconPrimary}" controls:IconElement.Geometry="{StaticResource ClockGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(ClockGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Margin="5" Style="{StaticResource ButtonIconSuccess}" controls:IconElement.Geometry="{StaticResource CalendarGeometry}"></Button>
|
||||
<Button IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconSuccess}" controls:IconElement.Geometry="{StaticResource CalendarGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(CalendarGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Margin="5" Style="{StaticResource ButtonIconInfo}" controls:IconElement.Geometry="{StaticResource DownGeometry}"></Button>
|
||||
<Button IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconInfo}" controls:IconElement.Geometry="{StaticResource DownGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(DownGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Margin="5" Style="{StaticResource ButtonIconWarning}" controls:IconElement.Geometry="{StaticResource LeftGeometry}"></Button>
|
||||
<Button IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconWarning}" controls:IconElement.Geometry="{StaticResource LeftGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(LeftGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Margin="5" Style="{StaticResource ButtonIconDanger}" controls:IconElement.Geometry="{StaticResource DeleteGeometry}"></Button>
|
||||
<Button IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconDanger}" controls:IconElement.Geometry="{StaticResource DeleteGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(DeleteGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--切换按钮-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="切换按钮"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(ToggleButton)"></TextBlock>
|
||||
</StackPanel>
|
||||
<WrapPanel Grid.Column="1" ItemWidth="160" ItemHeight="130">
|
||||
<StackPanel>
|
||||
<ToggleButton IsChecked="True" Content="默认" Margin="5"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="默认" Margin="5"></ToggleButton>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton IsChecked="True" Content="主要" Margin="5" Style="{StaticResource ToggleButtonPrimary}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="主要" Margin="5" Style="{StaticResource ToggleButtonPrimary}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonPrimary"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton IsChecked="True" Content="成功" Margin="5" Style="{StaticResource ToggleButtonSuccess}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="成功" Margin="5" Style="{StaticResource ToggleButtonSuccess}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonSuccess"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Content="信息" Margin="5" Style="{StaticResource ToggleButtonInfo}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="信息" Margin="5" Style="{StaticResource ToggleButtonInfo}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonInfo"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Content="警告" Margin="5" Style="{StaticResource ToggleButtonWarning}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="警告" Margin="5" Style="{StaticResource ToggleButtonWarning}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonWarning"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Content="危险" Margin="5" Style="{StaticResource ToggleButtonDanger}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="危险" Margin="5" Style="{StaticResource ToggleButtonDanger}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonDanger"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Margin="5" Style="{StaticResource ToggleButtonIconTransparent}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Margin="5" Style="{StaticResource ToggleButtonIconTransparent}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ToggleButtonIconTransparent"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Height="30" IsChecked="True" Margin="5" Style="{StaticResource ToggleButtonSwitch}"></ToggleButton>
|
||||
<ToggleButton Height="30" Margin="5" IsEnabled="False" Style="{StaticResource ToggleButtonSwitch}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonSwitch"></TextBlock>
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--开关-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="开关"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(BulletCheckBox)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="1" Margin="50,0,0,0" Orientation="Horizontal">
|
||||
<controls:BulletCheckBox IsChecked="True" ></controls:BulletCheckBox>
|
||||
<controls:BulletCheckBox Margin="5,0" IsEnabled="False"></controls:BulletCheckBox>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--复选框-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="复选框"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(CheckBox)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" Margin="50,0,0,0" Grid.Column="1">
|
||||
<CheckBox Content="刷卡"></CheckBox>
|
||||
<CheckBox IsChecked="True" Margin="5,0" Content="人脸"></CheckBox>
|
||||
<CheckBox IsEnabled="False" Margin="5,0" Content="RFID"></CheckBox>
|
||||
<CheckBox IsEnabled="False" IsChecked="True" Margin="5,0" Content="指纹"></CheckBox>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--单选框-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="单选框"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(RadioButton)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" Margin="50,0,0,0" Grid.Column="1">
|
||||
<RadioButton Content="刷卡"/>
|
||||
<RadioButton IsChecked="True" Margin="5,0" Content="人脸"></RadioButton>
|
||||
<RadioButton Margin="5,0" Content="RFID"></RadioButton>
|
||||
<RadioButton IsEnabled="False" Margin="5,0" Content="指纹"></RadioButton>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--滑动条-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="滑动条"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(Slider)"></TextBlock>
|
||||
</StackPanel>
|
||||
<WrapPanel Grid.Column="1" Margin="0,0,0,50">
|
||||
<StackPanel Margin="50,0,0,0" HorizontalAlignment="Left">
|
||||
<Slider Width="300"></Slider>
|
||||
<Slider Margin="0,20,0,0" Value="50" Maximum="100" IsEnabled="False" Width="300"></Slider>
|
||||
<Slider Margin="0,20,0,0" TickFrequency="5" TickPlacement="BottomRight" Minimum="1" Maximum="50" Value="25" IsSelectionRangeEnabled="True" />
|
||||
<Slider Margin="0,20,0,0" IsEnabled="False" TickFrequency="5" TickPlacement="BottomRight" Minimum="1" Maximum="50" Value="25" IsSelectionRangeEnabled="True" />
|
||||
<Slider Margin="0,20,0,0" TickFrequency="5" TickPlacement="Both" Minimum="1" Maximum="50" Value="25" IsSelectionRangeEnabled="True" />
|
||||
<Slider Margin="0,20,0,0" Minimum="0" Maximum="100" Style="{StaticResource HzDiscreteSlider}" Value="50" />
|
||||
<TextBlock Margin="0,10,0,0" Style="{StaticResource TextBlockDefault}" Text="HzDiscreteSlider"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" Margin="30,0,0,0">
|
||||
<Slider TickFrequency="5" Height="260" TickPlacement="BottomRight" Orientation="Vertical" Minimum="1" Maximum="50" />
|
||||
<Slider Margin="20,0,0,0" TickFrequency="25" TickPlacement="TopLeft" Orientation="Vertical" Minimum="1" Value="25" Maximum="50" IsEnabled="False" />
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--进度条-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="进度条"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(ProgressBar)"></TextBlock>
|
||||
</StackPanel>
|
||||
<WrapPanel Margin="50,0,0,0" Grid.Column="1" ItemWidth="600">
|
||||
<StackPanel Orientation="Horizontal" Margin="0,0,0,30">
|
||||
<StackPanel Width="400">
|
||||
<ProgressBar Value="20"></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarSuccess}" Margin="0,10,0,0" Value="40"></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarInfo}" Margin="0,10,0,0" Value="60"></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarWarning}" Margin="0,10,0,0" Value="80"></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarDanger}" Margin="0,10,0,0" Value="100" Maximum="200"></ProgressBar>
|
||||
</StackPanel>
|
||||
<StackPanel Margin="10,0,0,0" Width="200" HorizontalAlignment="Left">
|
||||
<TextBlock Padding="0,2,0,3" Style="{StaticResource TextBlockDefault}" Text=""></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarSuccess" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarInfo" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarWarning" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarDanger" HorizontalAlignment="Left"></TextBlock>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" Margin="0,0,0,30">
|
||||
<StackPanel Width="400">
|
||||
<ProgressBar Style="{StaticResource ProgressBarPrimaryStripe}" Value="120" Maximum="200" ></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarSuccessStripe}" Margin="0,10,0,0" Value="60" Maximum="200" ></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarInfoStripe}" Margin="0,10,0,0" Value="50" Maximum="200" ></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarWarningStripe}" Margin="0,10,0,0" Value="180" Maximum="200" ></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarDangerStripe}" Margin="0,10,0,0" Value="110" Maximum="200" ></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarPlayer}" Margin="0,18,0,0" Value="110" Maximum="200" ></ProgressBar>
|
||||
</StackPanel>
|
||||
<StackPanel Margin="10,0,0,0" Width="200" HorizontalAlignment="Left">
|
||||
<TextBlock Padding="0,2,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarPrimaryStripe" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarSuccessStripe" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarInfoStripe" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarWarningStripe" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarDangerStripe" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarPlayer" HorizontalAlignment="Left"></TextBlock>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--加载条-->
|
||||
<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="加载条"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel VerticalAlignment="Center" Margin="50,0,0,0" Grid.Column="1">
|
||||
<controls:LoadingLine></controls:LoadingLine>
|
||||
<controls:LoadingLine Margin="0,30" Foreground="BlueViolet" Style="{StaticResource LoadingLineLarge}"></controls:LoadingLine>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<controls:LoadingCircle></controls:LoadingCircle>
|
||||
<Border VerticalAlignment="Center" Background="{DynamicResource PrimaryBrush}" CornerRadius="10">
|
||||
<controls:LoadingCircle Style="{StaticResource LoadingCircleLight}" Margin="10"></controls:LoadingCircle>
|
||||
</Border>
|
||||
<controls:LoadingCircle Width="50" Height="50" DotCount="4" DotDiameter="20" DotInterval="90" DotDelayTime="500" DotOffSet="10" Foreground="OrangeRed" Margin="30,0,0,0" Style="{StaticResource LoadingCircleLarge}"></controls:LoadingCircle>
|
||||
<!--<Border Background="{DynamicResource PrimaryBrush}" CornerRadius="10">
|
||||
<controls:LoadingCircle Margin="10" Style="{StaticResource LoadingCircleLargeLight}"></controls:LoadingCircle>
|
||||
</Border>-->
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!--SVG动画-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="SVG动画"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}">(AnimationPath)</TextBlock>
|
||||
</StackPanel>
|
||||
<WrapPanel Grid.Column="1" VerticalAlignment="Center" Margin="50,0,0,0">
|
||||
<Border Height="100" Width="100" Background="Transparent" ToolTip="Logo">
|
||||
<controls:AnimationPath PathLength="350" Data="F1M920,623C923.727,628.962 921,646.695 921,655 921,682.664 921,710.336 921,738 921,768.082 925.328,811.315 918,836 903.862,883.627 872.578,912.609 823,925 813.58,927.354 800.912,926 790,926 767.669,926 745.331,926 723,926 696.003,926.333 668.997,926.667 642,927 601.671,927 561.329,927 521,927 511.584,927 480.763,929.566 475,926 475.667,926 476.333,926 477,926 483.623,917.068 502.194,908.526 512,902 537.933,884.74 564.176,867.097 590,849 666.329,795.509 744.738,743.551 821,690 845.895,672.519 871.434,656.242 896,639 903.897,633.458 913.504,629.899 920,623z M161,333C161,396.327 161,459.673 161,523 157.661,528.384 160,556.215 160,565 160,601.996 160,639.004 160,676 160.333,676 160.667,676 161,676 174.342,663.888 197.037,656.728 213,647 251.63,623.46 292.921,603.803 332,580 455.577,504.729 586.124,439.5 711,366 711,451.658 711,537.342 711,623 655.006,657.996 598.994,693.003 543,728 543,708.002 543,687.998 543,668 539.168,661.838 542,643.538 542,635 542,606.336 542,577.664 542,549 541.333,549 540.667,549 540,549 531.558,559.313 511.639,568.253 500,576 470.305,595.763 439.912,615.758 409,635 399.327,641.021 389.295,646.291 380,652 376.954,653.871 365.55,657.766 364,660 364,721.994 364,784.006 364,846 361.366,850.185 363,861.861 363,868 363,887.522 362.608,909.076 364,927 304.339,927 244.661,927 185,927 155.131,927 118.163,931.003 93,924 72.952,918.421 56.64,908.992 42,898 37.287,894.461 33.589,888.783 30,884 18.537,868.723 8.706,853.747 3,832 0.121,821.029 1,808.166 1,795 1,774.335 1,753.665 1,733 1,634.01 1,534.99 1,436 16.683,427.173 31.044,415.485 46,406 67.518,392.354 88.817,380.09 110,366 121.134,358.595 132.308,351.379 144,344 149.539,340.504 153.923,335.03 161,333z M297,148C297.666,148 298.333,148 299,148 299,157.999 299,168.001 299,178 288.141,183.381 279.071,192.507 269,199 269,193.001 269,186.999 269,181 267.459,178.688 267.881,172.895 268,169 275.398,164.769 292.094,154.399 297,148z M361,136C361.667,136 362.333,136 363,136 363,151.998 363,168.002 363,184 347.002,195.332 330.998,206.668 315,218 315,201.668 315,185.332 315,169 325.719,163.746 334.552,154.646 344,148 349.675,144.008 357.064,141.645 361,136z M378,72C381.577,77.586 379.134,95.09 379,103 368.668,110.333 358.332,117.667 348,125 348,114.668 348,104.332 348,94 355.788,89.259 372.765,78.885 378,72z M109,1C220.322,1 331.678,1 443,1 443,1.333 443,1.667 443,2 295.681,103.323 148.319,204.677 1,306 1,241.34 1,176.66 1,112 2,106.001 3,99.999 4,94 7.621,81.746 11.748,69.075 18,59 30.169,39.39 49.956,20.521 72,11 80.332,8.334 88.667,5.666 97,3 101.135,1.865 105.885,2.958 109,1z M785.335,-0.209C801.393,-0.362 816.839,0.388 829,4 848.591,9.819 864.504,19.116 879,30 885.416,34.817 890.236,42.411 895,49 904.823,62.586 913.037,77.087 918,96 920.879,106.971 920,119.834 920,133 920,153.665 920,174.335 920,195 920,294.323 920,393.677 920,493 902.967,501.124 887.43,514.691 872,525 857.054,534.986 842.227,543.382 827,553 804.534,567.19 782.954,584.202 760,598 760,492.677 760,387.323 760,282 759.667,282 759.333,282 759,282 750.937,289.213 739.498,292.212 730,298 706.024,312.612 680.407,325.08 656,340 592.381,378.892 524.569,413.05 461,452 446.205,461.065 430.832,466.969 416,476 370.102,503.948 321.304,527.723 275,556 257.871,566.46 239.59,575.3 222,586 216.108,589.584 210.273,594.894 203,597 203,500.01 203,402.99 203,306 214.025,300.639 223.306,291.808 233,285 248.573,274.063 264.173,264.541 280,254 287.314,249.129 294.267,241.121 303,238 303,249.665 303,261.334 303,273 303.333,273 303.667,273 304,273 309.016,266.75 317.334,263.673 324,259 330.355,254.545 336.644,248.486 343,244 345.294,242.381 350.57,241.244 352,239 352,227.001 352,214.999 352,203 360.806,198.733 367.79,191.964 376,187 376,260.326 376,333.674 376,407 376.333,407 376.667,407 377,407 380.078,403.361 384.796,402.602 389,400 400.641,392.794 412.901,386.419 425,379 451.17,362.953 477.055,345.752 502,329 509.827,323.743 539.22,309.277 540,300 542.664,295.611 539.712,286.961 541,281 543.448,269.669 541.561,254.333 544,243 544,236.667 544,230.333 544,224 547.791,206.454 544.222,184.549 548,167 548,161.001 548,154.999 548,149 550.285,138.428 550.377,123.216 551,112 551,105.334 551,98.666 551,92 553.491,80.469 550.25,66.732 553,54 556.428,38.131 555.92,18.392 556,1 616.66,1 677.339,1 738,1 752.607,1 769.277,-0.056 785.335,-0.209z"></controls:AnimationPath>
|
||||
</Border>
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--gif图片-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="gif图片"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}">(GifImage)</TextBlock>
|
||||
</StackPanel>
|
||||
<WrapPanel Grid.Column="1" VerticalAlignment="Center" Margin="50,0,0,0">
|
||||
<controls:GifImage Height="100" Width="100" Stretch="Uniform" Source="/Resources/police_car.gif"></controls:GifImage>
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--图片浏览-->
|
||||
<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="图片浏览"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}">(ImageBrowser)</TextBlock>
|
||||
</StackPanel>
|
||||
<Button Click="ButtonImageBrowser_OnClick" Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="50,5,5,5" Content="点击打开图片浏览器" Style="{StaticResource ButtonPrimary}"></Button>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!--颜色拾取器-->
|
||||
<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="颜色拾取器"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}">(ColorPicker)</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Left" Margin="50,5,5,5">
|
||||
<Button Click="ButtonColor_OnClick" Name="ButtonColor" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,5,5,5" Content="点击弹出颜色拾取器" Style="{StaticResource ButtonPrimary}"></Button>
|
||||
<Button Click="ButtonColorPreset_OnClick" Name="ButtonColorPreset" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,5,5,5" Content="点击弹出颜色拾取器,同时预设为蓝色" Style="{StaticResource ButtonPrimary}"></Button>
|
||||
|
||||
<TextBlock Name="BlockColor" Margin="20,0,0,0" Style="{StaticResource TextBlockTitle}"></TextBlock>
|
||||
</StackPanel>
|
||||
<Popup StaysOpen="False" AllowsTransparency="True" Name="PopupColor" Grid.Column="1" VerticalOffset="1" Placement="Bottom" PlacementTarget="{Binding ElementName=ButtonColor}">
|
||||
<controls:ColorPicker x:Name="ColorPicker" Canceled="ColorPicker_OnCanceled" ColorSelected="ColorPicker_OnColorSelected"></controls:ColorPicker>
|
||||
</Popup>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!-- 轮播-->
|
||||
<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="轮播"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}">(Carousel)</TextBlock>
|
||||
</StackPanel>
|
||||
<controls:Carousel AutoRun="True" Width="600" Height="330" Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="50,5,5,5" >
|
||||
<Image Width="600" Stretch="UniformToFill" Source="Resources/1.jpg"></Image>
|
||||
<Image Width="300" Stretch="UniformToFill" Source="Resources/2.jpg"></Image>
|
||||
<Grid Width="600">
|
||||
<Image Stretch="UniformToFill" Source="Resources/3.jpg"></Image>
|
||||
<TextBlock Text="示例文本" Style="{StaticResource TextBlockDefault}" FontSize="100" FontWeight="Bold" Foreground="White"></TextBlock>
|
||||
</Grid>
|
||||
<Image Width="600" Stretch="UniformToFill" Source="Resources/4.jpg"></Image>
|
||||
<Image Width="600" Stretch="UniformToFill" Source="Resources/5.jpg"></Image>
|
||||
</controls:Carousel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!--对比滑块-->
|
||||
<Border Visibility="Visible" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="对比滑块"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}">(CompareSlider)</TextBlock>
|
||||
</StackPanel>
|
||||
<WrapPanel Grid.Column="1" HorizontalAlignment="Left" Margin="50,0,0,0">
|
||||
<controls:CompareSlider Value="5" Width="600" Height="352" Margin="0,0,30,30">
|
||||
<controls:CompareSlider.TargetContent>
|
||||
<Border>
|
||||
<Border.Background>
|
||||
<ImageBrush ImageSource="Resources/b1.jpg"/>
|
||||
</Border.Background>
|
||||
</Border>
|
||||
</controls:CompareSlider.TargetContent>
|
||||
<controls:CompareSlider.SourceContent>
|
||||
<Border>
|
||||
<Border.Background>
|
||||
<ImageBrush ImageSource="Resources/b2.jpg"/>
|
||||
</Border.Background>
|
||||
</Border>
|
||||
</controls:CompareSlider.SourceContent>
|
||||
</controls:CompareSlider>
|
||||
<controls:CompareSlider Orientation="Vertical" Value="5" Width="600" Height="352">
|
||||
<controls:CompareSlider.TargetContent>
|
||||
<Border>
|
||||
<Border.Background>
|
||||
<ImageBrush ImageSource="Resources/b1.jpg"/>
|
||||
</Border.Background>
|
||||
</Border>
|
||||
</controls:CompareSlider.TargetContent>
|
||||
<controls:CompareSlider.SourceContent>
|
||||
<Border>
|
||||
<Border.Background>
|
||||
<ImageBrush ImageSource="Resources/b2.jpg"/>
|
||||
</Border.Background>
|
||||
</Border>
|
||||
</controls:CompareSlider.SourceContent>
|
||||
</controls:CompareSlider>
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!--时间条-->
|
||||
<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="时间条"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}">(TimeBar)</TextBlock>
|
||||
</StackPanel>
|
||||
<controls:TimeBar BorderThickness="0" Background="{StaticResource PrimaryBrush}" Grid.Column="1" Width="600" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="50,5,5,5" ></controls:TimeBar>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!--输入-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="输入"></TextBlock>
|
||||
</StackPanel>
|
||||
<WrapPanel controls:InfoControl.TitleWidth="280" Grid.Column="1" ItemWidth="500" Margin="0,0,0,10">
|
||||
<controls:InfoComboBox DisplayMemberPath="Id" SelectedValuePath="Id" ItemsSource="{Binding FruitList,ElementName=MyWindow}" Margin="0,0,0,30" HorizontalAlignment="Stretch" Title="下拉框(必填) InfoComboBox" PlaceHolder="请选择一种水果" ErrorStr="请选择一种水果"></controls:InfoComboBox>
|
||||
<controls:InfoComboBox DisplayMemberPath="Name" SelectedValuePath="Id" IsEditable="True" ItemsSource="{Binding FruitList,ElementName=MyWindow}" Margin="0,0,0,30" HorizontalAlignment="Stretch" IsNeedly="False" Title="下拉框 InfoComboBox" PlaceHolder="请选择一种水果">
|
||||
-->
|
||||
<!--<sys:String>苹果</sys:String>
|
||||
<sys:String>香蕉</sys:String>
|
||||
<sys:String>橘子</sys:String>
|
||||
<sys:String>菠萝</sys:String>
|
||||
<sys:String>葡萄</sys:String>-->
|
||||
<!--
|
||||
</controls:InfoComboBox>
|
||||
<controls:InfoTextBox Margin="0,0,0,30" HorizontalAlignment="Stretch" Title="文本框(必填) InfoTextBox" PlaceHolder="请输入一种水果" ErrorStr="请输入一种水果"></controls:InfoTextBox>
|
||||
<controls:InfoTextBox TitleAlignment="Top" Margin="0,0,0,30" HorizontalAlignment="Stretch" IsNeedly="False" Title="文本框 InfoTextBox" PlaceHolder="请输入一种水果"></controls:InfoTextBox>
|
||||
<controls:InfoPasswordBox PasswordChar="❤" TitleAlignment="Top" Margin="0,0,0,30" HorizontalAlignment="Stretch" IsNeedly="False" Title="密码框 InfoPasswordBox" PlaceHolder="请输入密码"></controls:InfoPasswordBox>
|
||||
<controls:InfoDatePicker TitleAlignment="Top" Margin="0,0,0,30" HorizontalAlignment="Stretch" Title="日期选择(必填) InfoDatePicker" PlaceHolder="请选择日期" ErrorStr="请选择日期"></controls:InfoDatePicker>
|
||||
<controls:InfoDatePicker Margin="0,0,0,30" IsNeedly="False" HorizontalAlignment="Stretch" Title="日期选择 InfoDatePicker" PlaceHolder="请选择日期"></controls:InfoDatePicker>
|
||||
<controls:InfoTimePicker IsNeedly="False" Margin="0,0,0,30" HorizontalAlignment="Stretch" Title="时间选择 InfoTimePicker" PlaceHolder="请选择一个时间" ErrorStr="请选择一个时间"></controls:InfoTimePicker>
|
||||
<controls:InfoDateTimePicker IsNeedly="False" Margin="0,0,0,30" HorizontalAlignment="Stretch" Title="日期时间选择 InfoDateTimePicker" PlaceHolder="请选择一个时间" ErrorStr="请选择一个时间"></controls:InfoDateTimePicker>
|
||||
<controls:InfoNumericUpDown IsNeedly="False" Margin="0,0,0,30" HorizontalAlignment="Stretch" Title="数值选择控件 InfoNumericUpDown"></controls:InfoNumericUpDown>
|
||||
<ComboBox SelectedIndex="0" Text="原生ComboBox" Margin="280,0,0,30">
|
||||
<ComboBoxItem Content="原生ComboBox"></ComboBoxItem>
|
||||
<ComboBoxItem Content="苹果"></ComboBoxItem>
|
||||
<ComboBoxItem Content="香蕉"></ComboBoxItem>
|
||||
<ComboBoxItem Content="橘子"></ComboBoxItem>
|
||||
<ComboBoxItem Content="菠萝"></ComboBoxItem>
|
||||
<ComboBoxItem Content="葡萄"></ComboBoxItem>
|
||||
</ComboBox>
|
||||
<ComboBox IsEditable="True" Text="原生可编辑ComboBox" Margin="280,0,0,30">
|
||||
<ComboBoxItem Content="原生可编辑ComboBox"></ComboBoxItem>
|
||||
<ComboBoxItem Content="苹果"></ComboBoxItem>
|
||||
<ComboBoxItem Content="香蕉"></ComboBoxItem>
|
||||
<ComboBoxItem Content="橘子"></ComboBoxItem>
|
||||
<ComboBoxItem Content="菠萝"></ComboBoxItem>
|
||||
<ComboBoxItem Content="葡萄"></ComboBoxItem>
|
||||
</ComboBox>
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--树状视图-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="树状视图"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(TreeView)"></TextBlock>
|
||||
</StackPanel>
|
||||
<TreeView HorizontalAlignment="Left" Width="300" Height="300" Margin="50,0,0,0" Grid.Column="1" Name="TreeViewMain">
|
||||
<TreeView.ItemTemplate>
|
||||
<HierarchicalDataTemplate DataType="{x:Type model:CellGateInfo}" ItemsSource="{Binding InfoList}">
|
||||
<TextBlock Text="{Binding Name}"></TextBlock>
|
||||
</HierarchicalDataTemplate>
|
||||
</TreeView.ItemTemplate>
|
||||
</TreeView>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--列表框-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="列表框"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(ListBox)"></TextBlock>
|
||||
</StackPanel>
|
||||
<ListBox HorizontalAlignment="Left" Width="300" Height="300" Margin="50,0,0,0" Grid.Column="1" Name="ListBoxMain">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Name}"></TextBlock>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--数据表格-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="数据表格"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(DataGrid)"></TextBlock>
|
||||
</StackPanel>
|
||||
<DataGrid HorizontalAlignment="Left" Width="300" Height="300" Name="DataGridMain" Grid.Column="1" Margin="50,0,0,0">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Width="1*" Binding="{Binding PersonId}" Header="姓名"/>
|
||||
<DataGridTextColumn Width="1*" Binding="{Binding DeviceId}" Header="类型"/>
|
||||
<DataGridTextColumn Width="1*" Binding="{Binding Direction}" Header="方向"/>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--组合框-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="组合框"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(GroupBox)"></TextBlock>
|
||||
</StackPanel>
|
||||
<WrapPanel Grid.Column="1" Margin="50,0,0,0">
|
||||
<GroupBox Style="{StaticResource GroupBoxDefault}" Margin="0,0,10,10" Width="400" Height="300" Header="默认样式">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Text="内容"></TextBlock>
|
||||
</GroupBox>
|
||||
<GroupBox Margin="0,0,10,10" Width="400" Height="300" Header="标题不带背景(GroupBoxNoBackground)">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Text="内容"></TextBlock>
|
||||
</GroupBox>
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--标签控件-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="标签控件"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(TabControl)"></TextBlock>
|
||||
</StackPanel>
|
||||
<Border Style="{StaticResource BorderRegionStyle}" Grid.Column="1" Padding="0" Margin="50,0,0,0">
|
||||
<TabControl>
|
||||
<TabItem Header="标题1">
|
||||
<Border Background="{DynamicResource PrimaryBrush}" Height="200">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}" Text="内容1"></TextBlock>
|
||||
</Border>
|
||||
</TabItem>
|
||||
<TabItem Header="标题2">
|
||||
<Border Background="{DynamicResource SuccessBrush}" Height="200">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}" Text="内容2"></TextBlock>
|
||||
</Border>
|
||||
</TabItem>
|
||||
<TabItem Header="标题3">
|
||||
<Border Background="{DynamicResource InfoBrush}" Height="200">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}" Text="内容3"></TextBlock>
|
||||
</Border>
|
||||
</TabItem>
|
||||
<TabItem Header="标题4">
|
||||
<Border Background="{DynamicResource WarningBrush}" Height="200">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}" Text="内容4"></TextBlock>
|
||||
</Border>
|
||||
</TabItem>
|
||||
<TabItem Header="标题5">
|
||||
<Border Background="{DynamicResource DangerBrush}" Height="200">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}" Text="内容5"></TextBlock>
|
||||
</Border>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--可拖动的TabControl-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="可拖动的TabControl"></TextBlock>
|
||||
</StackPanel>
|
||||
<controls:TabControl SelectedIndex="2" BorderThickness="1" OpenEffect="True" BorderBrush="{DynamicResource BorderBrush}" Grid.Column="1" Margin="50,0,0,0">
|
||||
<controls:TabItem Header="标题1">
|
||||
<Border Background="{DynamicResource PrimaryBrush}" Height="200">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}" Text="内容1"></TextBlock>
|
||||
</Border>
|
||||
</controls:TabItem>
|
||||
<controls:TabItem Header="标题2">
|
||||
<Border Background="{DynamicResource SuccessBrush}" Height="200">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}" Text="内容2"></TextBlock>
|
||||
</Border>
|
||||
</controls:TabItem>
|
||||
<controls:TabItem Header="标题3">
|
||||
<Border Background="{DynamicResource InfoBrush}" Height="200">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}" Text="内容3"></TextBlock>
|
||||
</Border>
|
||||
</controls:TabItem>
|
||||
<controls:TabItem Header="标题4">
|
||||
<Border Background="{DynamicResource WarningBrush}" Height="200">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}" Text="内容4"></TextBlock>
|
||||
</Border>
|
||||
</controls:TabItem>
|
||||
<controls:TabItem Header="标题5">
|
||||
<Border Background="{DynamicResource DangerBrush}" Height="200">
|
||||
<TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}" Text="内容5"></TextBlock>
|
||||
</Border>
|
||||
</controls:TabItem>
|
||||
</controls:TabControl>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="展开框"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(Expander)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="1" Margin="50,0,0,0">
|
||||
<Expander Header="标题1" BorderThickness="1,1,1,0" BorderBrush="{StaticResource BorderBrush}" Width="240" HorizontalAlignment="Left">
|
||||
<Border Height="100" Background="{StaticResource BackgroundBrush}"></Border>
|
||||
</Expander>
|
||||
<Expander Header="标题1" BorderThickness="1,1,1,0" BorderBrush="{StaticResource BorderBrush}" Width="240" HorizontalAlignment="Left">
|
||||
<Border Height="100" Background="{StaticResource BackgroundBrush}"></Border>
|
||||
</Expander>
|
||||
<Expander Header="标题1" BorderThickness="1,1,1,0" BorderBrush="{StaticResource BorderBrush}" Width="240" HorizontalAlignment="Left">
|
||||
<Border Height="100" Background="{StaticResource BackgroundBrush}"></Border>
|
||||
</Expander>
|
||||
<Expander Header="标题1" BorderThickness="1" BorderBrush="{StaticResource BorderBrush}" Width="240" HorizontalAlignment="Left">
|
||||
<Border Height="100" Background="{StaticResource BackgroundBrush}"></Border>
|
||||
</Expander>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!--步骤条-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="步骤条"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(Steps)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="1" Margin="50,0,0,0">
|
||||
<controls:Steps x:Name="StepsExample">
|
||||
<controls:Steps.Items>
|
||||
<sys:String>描述描述描述描述1</sys:String>
|
||||
<sys:String>描述描述描述描述2</sys:String>
|
||||
<sys:String>描述描述描述描述3</sys:String>
|
||||
<sys:String>描述描述描述描述4</sys:String>
|
||||
</controls:Steps.Items>
|
||||
</controls:Steps>
|
||||
<StackPanel Margin="0,30,0,0" HorizontalAlignment="Center" Orientation="Horizontal">
|
||||
<Button Click="ButtonStepPrec_OnClick" Content="上一步" Style="{StaticResource ButtonPrimary}"></Button>
|
||||
<Button Click="ButtonStepNext_OnClick" Margin="10,0,0,0" Content="下一步" Style="{StaticResource ButtonPrimary}"></Button>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--页码条-->
|
||||
<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="页码条"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(Pagination)"></TextBlock>
|
||||
</StackPanel>
|
||||
<controls:Pagination HorizontalAlignment="Left" Margin="50,0,0,0" Width="600" MaxPageCount="10" Grid.Column="1"></controls:Pagination>
|
||||
</Grid>
|
||||
</Border>
|
||||
<!--上下文菜单-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="上下文菜单"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}" Text="(ContextMenu)"></TextBlock>
|
||||
</StackPanel>
|
||||
<Grid Grid.Column="1" Background="Transparent">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.ContextMenu>
|
||||
<ContextMenu>
|
||||
<MenuItem Header="11111111111">
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
</MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111">
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
<MenuItem Header="11111111111"></MenuItem>
|
||||
</MenuItem>
|
||||
</ContextMenu>
|
||||
</Grid.ContextMenu>
|
||||
<controls:ContextMenuButton Margin="50,0,30,0" HorizontalAlignment="Left" Content="点击弹出树状上下文菜单" Style="{StaticResource ButtonPrimary}">
|
||||
<controls:ContextMenuButton.Menu>
|
||||
<controls:TreeContextMenu Name="ButtonContextMenu">
|
||||
<controls:TreeContextMenu.ItemTemplate>
|
||||
<HierarchicalDataTemplate DataType="{x:Type model:CellGateInfo}" ItemsSource="{Binding InfoList}">
|
||||
<TextBlock Text="{Binding Name}"></TextBlock>
|
||||
</HierarchicalDataTemplate>
|
||||
</controls:TreeContextMenu.ItemTemplate>
|
||||
</controls:TreeContextMenu>
|
||||
</controls:ContextMenuButton.Menu>
|
||||
</controls:ContextMenuButton>
|
||||
<TextBlock Grid.Column="1" Style="{StaticResource TextBlockDefault}" Text="或者在空白区域右键弹出普通上下文菜单"></TextBlock>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--特殊文本-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="特殊文本"></TextBlock>
|
||||
<TextBlock Style="{StaticResource TextBlockTitle}">
|
||||
(FormatedText、
|
||||
<LineBreak/>
|
||||
StrokeableLabel)
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<WrapPanel Grid.Column="1" VerticalAlignment="Center" Margin="50,0,0,0">
|
||||
<controls:FormatedText Text="纵向文本" FontSize="30" Margin="0,0,30,0" TextOrientation="Vertical"></controls:FormatedText>
|
||||
<controls:FormatedText Text="横向文本" FontSize="30" Margin="0,0,30,0"></controls:FormatedText>
|
||||
<controls:FormatedText Text="文字间隔示例" FontSize="30" Margin="0,0,30,0" StretchSize="28" FontWeight="Bold"></controls:FormatedText>
|
||||
<controls:StrokeableLabel Text="带边线文本" FontSize="30" StrokeThickness="2" Stroke="{DynamicResource PrimaryBrush}" FontWeight="Bold"/>
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
<!--字体-->
|
||||
<!--<Border Visibility="Collapsed" Margin="0,10,0,0" Style="{StaticResource BorderRegionStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" SharedSizeGroup="Header"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Margin="0,5,0,0" Style="{StaticResource TextBlockTitle}" Text="字体"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="1" Margin="50,0,0,30">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<StackPanel>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockLargeBold" Style="{DynamicResource TextBlockLargeBold}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockLarge" Style="{DynamicResource TextBlockLarge}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockHeaderBold" Style="{DynamicResource TextBlockTitleBold}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockHeader" Style="{DynamicResource TextBlockTitle}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockSubHeaderBold" Style="{DynamicResource TextBlockSubTitleBold}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockSubHeader" Style="{DynamicResource TextBlockSubTitle}"></TextBlock>
|
||||
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockDefaultBold" Style="{DynamicResource TextBlockDefaultBold}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockDefault" Style="{DynamicResource TextBlockDefault}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockDefaultAccent" Style="{DynamicResource TextBlockDefaultAccent}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockDefaultSecLight" Style="{DynamicResource TextBlockDefaultSecLight}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockDefaultThiLight" Style="{DynamicResource TextBlockDefaultThiLight}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockDefaultPrimary" Style="{DynamicResource TextBlockDefaultPrimary}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockDefaultDanger" Style="{DynamicResource TextBlockDefaultDanger}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockDefaultWarning" Style="{DynamicResource TextBlockDefaultWarning}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockDefaultInfo" Style="{DynamicResource TextBlockDefaultInfo}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="TextBlockDefaultSuccess" Style="{DynamicResource TextBlockDefaultSuccess}"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Margin="10,0,0,0">
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="标题标题标题标题标题标题标题标题标题标题" Style="{DynamicResource TextBlockLargeBold}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="标题标题标题标题标题标题标题标题标题标题" Style="{DynamicResource TextBlockLarge}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="标题标题标题标题标题标题标题标题标题标题标题标题" Style="{DynamicResource TextBlockTitleBold}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="标题标题标题标题标题标题标题标题标题标题标题标题" Style="{DynamicResource TextBlockTitle}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="子标题子标题子标题子标题子标题子标题子标题子标题子标题子标题" Style="{DynamicResource TextBlockSubTitleBold}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="子标题子标题子标题子标题子标题子标题子标题子标题子标题子标题" Style="{DynamicResource TextBlockSubTitle}"></TextBlock>
|
||||
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文" Style="{DynamicResource TextBlockDefaultBold}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文" Style="{DynamicResource TextBlockDefault}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文" Style="{DynamicResource TextBlockDefaultAccent}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文" Style="{DynamicResource TextBlockDefaultSecLight}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文" Style="{DynamicResource TextBlockDefaultThiLight}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文" Style="{DynamicResource TextBlockDefaultPrimary}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文" Style="{DynamicResource TextBlockDefaultDanger}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文" Style="{DynamicResource TextBlockDefaultWarning}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文" Style="{DynamicResource TextBlockDefaultInfo}"></TextBlock>
|
||||
<TextBlock HorizontalAlignment="Left" Margin="5" Text="正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文" Style="{DynamicResource TextBlockDefaultSuccess}"></TextBlock>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>-->
|
||||
</StackPanel>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="200" MinWidth="200" MaxWidth="400"/>
|
||||
<ColumnDefinition MinWidth="200"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<ContentPresenter Content="{Binding LeftMainContent}"/>
|
||||
<ContentPresenter Grid.Column="1" Content="{Binding MainContent}"/>
|
||||
<GridSplitter Grid.Column="1" HorizontalAlignment="Left" Width="4" Background="Transparent" BorderThickness="1,0,0,0" BorderBrush="{StaticResource BorderBrush}"></GridSplitter>
|
||||
<controls:ScrollViewer Grid.Column="1" VerticalScrollBarVisibility="Hidden" HorizontalAlignment="Right" IsEnableInertia="True" IsPenetrating="True">
|
||||
<StackPanel IsHitTestVisible="True" VerticalAlignment="Top" Background="Transparent" Name="PanelMessage" Margin="0,10,10,10"></StackPanel>
|
||||
</controls:ScrollViewer>
|
||||
</Grid>
|
||||
</controls:WindowBorderless>
|
||||
@@ -1,14 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media;
|
||||
using HandyControl.Controls;
|
||||
using HandyControl.Data;
|
||||
using HandyControl.Tools.Extension;
|
||||
using HandyControlDemo.Data.Model;
|
||||
using HandyControl.Controls;
|
||||
|
||||
namespace HandyControlDemo
|
||||
{
|
||||
@@ -17,311 +7,11 @@ namespace HandyControlDemo
|
||||
/// </summary>
|
||||
public partial class MainWindow
|
||||
{
|
||||
public static readonly DependencyProperty FruitListProperty = DependencyProperty.Register(
|
||||
"FruitList", typeof(ObservableCollection<Fruit>), typeof(MainWindow), new PropertyMetadata(default(ObservableCollection<string>)));
|
||||
|
||||
public ObservableCollection<Fruit> FruitList
|
||||
{
|
||||
get => (ObservableCollection<Fruit>)GetValue(FruitListProperty);
|
||||
set => SetValue(FruitListProperty, value);
|
||||
}
|
||||
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
foreach (var border in StackPanelMain.Children.OfType<Border>())
|
||||
{
|
||||
border.Show();
|
||||
}
|
||||
|
||||
var listZ = new List<CellGateInfo>();
|
||||
|
||||
for (int i = 1; i <= 40; i++)
|
||||
{
|
||||
var itemC = new CellGateInfo();
|
||||
var listC = new List<CellGateInfo>();
|
||||
itemC.Name = $"{i}幢";
|
||||
for (int j = 1; j <= 2; j++)
|
||||
{
|
||||
var itemF = new CellGateInfo();
|
||||
var listF = new List<CellGateInfo>();
|
||||
itemF.Name = $"{itemC.Name}{j}单元";
|
||||
for (int k = 1; k <= 10; k++)
|
||||
{
|
||||
for (int l = 1; l <= 4; l++)
|
||||
{
|
||||
var itemR = new CellGateInfo
|
||||
{
|
||||
Name = $"{itemF.Name}{k}0{l}室"
|
||||
};
|
||||
listF.Add(itemR);
|
||||
}
|
||||
}
|
||||
itemF.InfoList = listF;
|
||||
listC.Add(itemF);
|
||||
}
|
||||
itemC.InfoList = listC;
|
||||
listZ.Add(itemC);
|
||||
}
|
||||
|
||||
//TreeViewMain.ItemsSource = listZ;
|
||||
//ListBoxMain.ItemsSource = listZ;
|
||||
//ButtonContextMenu.ItemsSource = listZ;
|
||||
|
||||
var showRecords = new List<CellGateRecord>
|
||||
{
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-1),
|
||||
CellGateId = "1幢1单元A单元门",
|
||||
PersonId = "宋立才",
|
||||
DeviceId = "刷卡",
|
||||
Direction = "进"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-2),
|
||||
CellGateId = "1幢1单元A单元门",
|
||||
PersonId = "宋立才",
|
||||
DeviceId = "刷卡",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-2),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "周弘益",
|
||||
DeviceId = "人脸",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-3),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "周弘益",
|
||||
DeviceId = "人脸",
|
||||
Direction = "进"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-2),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "彭念文",
|
||||
DeviceId = "RFID",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-3),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "彭念文",
|
||||
DeviceId = "RFID",
|
||||
Direction = "进"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "王跃",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "赵兴隆",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "王跃",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "赵兴隆",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "王跃",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "赵兴隆",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "王跃",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "赵兴隆",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "王跃",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "赵兴隆",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "王跃",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "赵兴隆",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "王跃",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "赵兴隆",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "王跃",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
},
|
||||
new CellGateRecord
|
||||
{
|
||||
CreateTime = DateTime.Now.AddDays(-4),
|
||||
CellGateId = "20幢2单元A单元门",
|
||||
PersonId = "赵兴隆",
|
||||
DeviceId = "指纹",
|
||||
Direction = "出"
|
||||
}
|
||||
};
|
||||
//DataGridMain.ItemsSource = showRecords;
|
||||
|
||||
FruitList = new ObservableCollection<Fruit>
|
||||
{
|
||||
new Fruit
|
||||
{
|
||||
Name = "苹果",
|
||||
Id = 0
|
||||
},
|
||||
new Fruit
|
||||
{
|
||||
Name = "香蕉",
|
||||
Id = 1
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
public class Fruit
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
||||
public int Id { get; set; }
|
||||
}
|
||||
|
||||
//private void ThemesComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
//{
|
||||
// if (sender is ComboBox comboBox && comboBox.SelectedItem is ComboBoxItem comboBoxItem &&
|
||||
// comboBoxItem.Tag is string tag)
|
||||
// {
|
||||
// var str = File.ReadAllText($"./Files/Themes/{tag}.json");
|
||||
// var jObject = JObject.Parse(str);
|
||||
// foreach (var item in jObject.Properties())
|
||||
// {
|
||||
// Resources.Remove(item.Name);
|
||||
// Resources.Add(item.Name, item.Value.ToObject<SolidColorBrush>());
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
//private void ButtonStepPrec_OnClick(object sender, RoutedEventArgs e)
|
||||
//{
|
||||
// StepsExample.Prev();
|
||||
//}
|
||||
|
||||
|
||||
//private void ButtonStepNext_OnClick(object sender, RoutedEventArgs e)
|
||||
//{
|
||||
// StepsExample.Next();
|
||||
//}
|
||||
|
||||
private void ButtonImageBrowser_OnClick(object sender, RoutedEventArgs e) =>
|
||||
new ImageBrowser(new Uri("pack://application:,,,/Resources/1.jpg")).Show();
|
||||
|
||||
private void ColorPicker_OnColorSelected(object sender, FunctionEventArgs<Color> e)
|
||||
{
|
||||
BlockColor.Text = $"{e.Info}-----{e.Info.ToInt32()}";
|
||||
PopupColor.IsOpen = false;
|
||||
}
|
||||
|
||||
private void ColorPicker_OnCanceled(object sender, EventArgs e)
|
||||
{
|
||||
PopupColor.IsOpen = false;
|
||||
}
|
||||
|
||||
private void ButtonColor_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
PopupColor.IsOpen = true;
|
||||
}
|
||||
|
||||
private void ButtonColorPreset_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ColorPicker.SelectedBrush = Brushes.Blue;
|
||||
PopupColor.IsOpen = true;
|
||||
Growl.SetGrowlPanel(PanelMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,52 +2,15 @@
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("HandyControlDemo")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyDescription("HandyControlDemo")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("HandyControlDemo")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2018")]
|
||||
[assembly: AssemblyCopyright("Copyright © 纳边 2018")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
//若要开始生成可本地化的应用程序,请设置
|
||||
//.csproj 文件中的 <UICulture>CultureYouAreCodingWith</UICulture>
|
||||
//例如,如果您在源文件中使用的是美国英语,
|
||||
//使用的是美国英语,请将 <UICulture> 设置为 en-US。 然后取消
|
||||
//对以下 NeutralResourceLanguage 特性的注释。 更新
|
||||
//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。
|
||||
|
||||
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
|
||||
|
||||
|
||||
[assembly: ThemeInfo(
|
||||
ResourceDictionaryLocation.None, //主题特定资源词典所处位置
|
||||
//(未在页面中找到资源时使用,
|
||||
//或应用程序资源字典中找到时使用)
|
||||
ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置
|
||||
//(未在页面中找到资源时使用,
|
||||
//、应用程序或任何主题专用资源字典中找到时使用)
|
||||
)]
|
||||
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
// 方法是按如下所示使用“*”: :
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]
|
||||
[assembly: AssemblyVersion("1.2.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.2.0.0")]
|
||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,28 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib">
|
||||
|
||||
<system:String x:Key="Controls">控件</system:String>
|
||||
<system:String x:Key="Styles">样式模板</system:String>
|
||||
<system:String x:Key="Growl">信息通知</system:String>
|
||||
<system:String x:Key="GrowlInfo">今天的天气不错~~~</system:String>
|
||||
<system:String x:Key="GrowlSuccess">文件保存成功!</system:String>
|
||||
<system:String x:Key="GrowlWarning">磁盘空间快要满了!</system:String>
|
||||
<system:String x:Key="GrowlError">连接服务器失败,请检查网络!</system:String>
|
||||
<system:String x:Key="GrowlFatal">程序已崩溃~~~</system:String>
|
||||
<system:String x:Key="GrowlAsk">检测到有新版本,是否更新?</system:String>
|
||||
<system:String x:Key="Loading">加载条</system:String>
|
||||
<system:String x:Key="ImageBrowser">图片浏览器</system:String>
|
||||
<system:String x:Key="ColorPicker">颜色拾取器</system:String>
|
||||
<system:String x:Key="Carousel">轮播</system:String>
|
||||
<system:String x:Key="CompareSlider">对比滑块</system:String>
|
||||
<system:String x:Key="TimeBar">时间条</system:String>
|
||||
<system:String x:Key="Expander">展开框</system:String>
|
||||
<system:String x:Key="Pagination">页码条</system:String>
|
||||
<system:String x:Key="OpenImageBrowser">点击打开图片浏览器</system:String>
|
||||
<system:String x:Key="ProgressBar">进度条</system:String>
|
||||
<system:String x:Key="AnimationPath">动画路径</system:String>
|
||||
<system:String x:Key="Button">按钮</system:String>
|
||||
<system:String x:Key="ToggleButton">切换按钮</system:String>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -0,0 +1,25 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="Colors.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<DrawingBrush x:Key="MainContentBackground" RenderOptions.CachingHint="Cache" Viewport="0,0,16,16" ViewportUnits="Absolute" Stretch="None" TileMode="Tile">
|
||||
<DrawingBrush.Drawing>
|
||||
<DrawingGroup>
|
||||
<GeometryDrawing Brush="#f5f5f5">
|
||||
<GeometryDrawing.Geometry>
|
||||
<GeometryGroup>
|
||||
<RectangleGeometry Rect="0,0,8,8" />
|
||||
<RectangleGeometry Rect="8,8,8,8" />
|
||||
</GeometryGroup>
|
||||
</GeometryDrawing.Geometry>
|
||||
</GeometryDrawing>
|
||||
</DrawingGroup>
|
||||
</DrawingBrush.Drawing>
|
||||
</DrawingBrush>
|
||||
|
||||
<SolidColorBrush x:Key="MainBackgroundBrush" Color="{StaticResource MainBackgroundColor}"/>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -0,0 +1,6 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<Color x:Key="MainBackgroundColor">#262e2f</Color>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -0,0 +1,7 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="Basic/Brushes.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -0,0 +1,75 @@
|
||||
using System;
|
||||
using CommonServiceLocator;
|
||||
using GalaSoft.MvvmLight.Ioc;
|
||||
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 控件定位器
|
||||
/// </summary>
|
||||
public class ControlLocator
|
||||
{
|
||||
private ControlLocator()
|
||||
{
|
||||
SimpleIoc.Default.Register<MainContent>();
|
||||
SimpleIoc.Default.Register<LeftMainContent>();
|
||||
SimpleIoc.Default.Register<GrowlDemoCtl>();
|
||||
SimpleIoc.Default.Register<LoadingDemoCtl>();
|
||||
SimpleIoc.Default.Register<ImageBrowserDemoCtl>();
|
||||
SimpleIoc.Default.Register<ColorPickerDemoCtl>();
|
||||
SimpleIoc.Default.Register<CarouselDemoCtl>();
|
||||
SimpleIoc.Default.Register<CompareSliderDemoCtl>();
|
||||
SimpleIoc.Default.Register<TimeBarDemoCtl>();
|
||||
SimpleIoc.Default.Register<PaginationDemoCtl>();
|
||||
SimpleIoc.Default.Register<AnimationPathDemoCtl>();
|
||||
SimpleIoc.Default.Register<ButtonDemoCtl>();
|
||||
SimpleIoc.Default.Register<ToggleButtonDemoCtl>();
|
||||
SimpleIoc.Default.Register<ExpanderDemoCtl>();
|
||||
SimpleIoc.Default.Register<ProgressBarDemoCtl>();
|
||||
}
|
||||
|
||||
public static ControlLocator Instance => new Lazy<ControlLocator>(() => new ControlLocator()).Value;
|
||||
|
||||
#region Main
|
||||
|
||||
public MainContent MainContent => ServiceLocator.Current.GetInstance<MainContent>();
|
||||
|
||||
public LeftMainContent LeftMainContent => ServiceLocator.Current.GetInstance<LeftMainContent>();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Controls
|
||||
|
||||
public GrowlDemoCtl GrowlDemoCtl => new GrowlDemoCtl();
|
||||
|
||||
public LoadingDemoCtl LoadingDemoCtl => new LoadingDemoCtl();
|
||||
|
||||
public ImageBrowserDemoCtl ImageBrowserDemoCtl => new ImageBrowserDemoCtl();
|
||||
|
||||
public ColorPickerDemoCtl ColorPickerDemoCtl => new ColorPickerDemoCtl();
|
||||
|
||||
public CarouselDemoCtl CarouselDemoCtl => new CarouselDemoCtl();
|
||||
|
||||
public CompareSliderDemoCtl CompareSliderDemoCtl => new CompareSliderDemoCtl();
|
||||
|
||||
public TimeBarDemoCtl TimeBarDemoCtl => new TimeBarDemoCtl();
|
||||
|
||||
public PaginationDemoCtl PaginationDemoCtl => new PaginationDemoCtl();
|
||||
|
||||
public AnimationPathDemoCtl AnimationPathDemoCtl => new AnimationPathDemoCtl();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Styles
|
||||
|
||||
public ButtonDemoCtl ButtonDemoCtl => new ButtonDemoCtl();
|
||||
|
||||
public ToggleButtonDemoCtl ToggleButtonDemoCtl => new ToggleButtonDemoCtl();
|
||||
|
||||
public ExpanderDemoCtl ExpanderDemoCtl => new ExpanderDemoCtl();
|
||||
|
||||
public ProgressBarDemoCtl ProgressBarDemoCtl => new ProgressBarDemoCtl();
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
<#@ template debug="false" hostspecific="false" language="C#" #>
|
||||
<#@ import namespace="System.Collections.Generic"#>
|
||||
<#@ output extension=".cs" #>
|
||||
<#
|
||||
var singleList = new List<string>
|
||||
{
|
||||
"MainContent",
|
||||
"LeftMainContent"
|
||||
};
|
||||
var controlList = new List<string>
|
||||
{
|
||||
"GrowlDemoCtl",
|
||||
"LoadingDemoCtl",
|
||||
"ImageBrowserDemoCtl",
|
||||
"ColorPickerDemoCtl",
|
||||
"CarouselDemoCtl",
|
||||
"CompareSliderDemoCtl",
|
||||
"TimeBarDemoCtl",
|
||||
"PaginationDemoCtl",
|
||||
"AnimationPathDemoCtl"
|
||||
};
|
||||
var styleList = new List<string>
|
||||
{
|
||||
"ButtonDemoCtl",
|
||||
"ToggleButtonDemoCtl",
|
||||
"ExpanderDemoCtl",
|
||||
"ProgressBarDemoCtl"
|
||||
};
|
||||
#>
|
||||
using System;
|
||||
using CommonServiceLocator;
|
||||
using GalaSoft.MvvmLight.Ioc;
|
||||
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 控件定位器
|
||||
/// </summary>
|
||||
public class ControlLocator
|
||||
{
|
||||
private ControlLocator()
|
||||
{
|
||||
<#foreach(var item in singleList){#>
|
||||
SimpleIoc.Default.Register<<#=item#>>();
|
||||
<#}#>
|
||||
<#foreach(var item in controlList){#>
|
||||
SimpleIoc.Default.Register<<#=item#>>();
|
||||
<#}#>
|
||||
<#foreach(var item in styleList){#>
|
||||
SimpleIoc.Default.Register<<#=item#>>();
|
||||
<#}#>
|
||||
}
|
||||
|
||||
public static ControlLocator Instance => new Lazy<ControlLocator>(() => new ControlLocator()).Value;
|
||||
|
||||
#region Main
|
||||
|
||||
<#foreach(var item in singleList){#>
|
||||
public <#=item#> <#=item#> => ServiceLocator.Current.GetInstance<<#=item#>>();
|
||||
|
||||
<#}#>
|
||||
#endregion
|
||||
|
||||
#region Controls
|
||||
|
||||
<#foreach(var item in controlList){#>
|
||||
public <#=item#> <#=item#> => new <#=item#>();
|
||||
|
||||
<#}#>
|
||||
#endregion
|
||||
|
||||
#region Styles
|
||||
|
||||
<#foreach(var item in styleList){#>
|
||||
public <#=item#> <#=item#> => new <#=item#>();
|
||||
|
||||
<#}#>
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.AnimationPathDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
Background="White"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl">
|
||||
<controls:TransitioningContentControl>
|
||||
<controls:AnimationPath Margin="32" PathLength="400" Duration="0:0:4" Stretch="Uniform" Width="200" Height="200" StrokeThickness="2" Stroke="{StaticResource PrimaryBrush}" Data="M40.493382,19.001303 C36.637875,19.06448 33.938568,21.421986 33.948524,25.271919 L34.068279,71.56765 34.066906,71.598007 34.068745,71.747833 34.18895,118.21758 C34.202225,123.35083 39.026951,129.19344 44.965271,131.2674 50.903587,133.34137 55.706783,130.86133 55.693504,125.72808 L55.589508,85.524513 93.866371,85.524513 93.950943,118.21758 C93.964218,123.35083 98.788948,129.19344 104.72726,131.2674 110.66558,133.34137 115.46878,130.86133 115.4555,125.72808 L115.33575,79.432381 115.33712,79.401993 115.33528,79.252007 115.21507,32.782413 C115.2018,27.64917 110.37708,21.806566 104.43876,19.732603 98.500435,17.658638 93.697243,20.138674 93.710518,25.271919 L93.814514,65.475487 55.537647,65.475487 55.453079,32.782413 C55.439804,27.64917 50.615082,21.806566 44.676762,19.732603 43.192181,19.214111 41.778549,18.980244 40.493382,19.001303 z M9.999999,0 L140,0 C145.52284,0 150,4.4771523 150,9.999999 L150,140 C150,145.52284 145.52284,150 140,150 L9.999999,150 C4.4771523,150 0,145.52284 0,140 L0,9.999999 C0,4.4771523 4.4771523,0 9.999999,0 z"></controls:AnimationPath>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// AnimationPathDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class AnimationPathDemoCtl
|
||||
{
|
||||
public AnimationPathDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.CarouselDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Background="White"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl">
|
||||
<controls:TransitioningContentControl>
|
||||
<controls:Carousel Margin="32" AutoRun="True" Width="600" Height="330">
|
||||
<Image Width="600" Stretch="UniformToFill" Source="/HandyControlDemo;component/Resources/Img/1.jpg"></Image>
|
||||
<Image Width="300" Stretch="UniformToFill" Source="/HandyControlDemo;component/Resources/Img/2.jpg"></Image>
|
||||
<Grid Width="600">
|
||||
<Image Stretch="UniformToFill" Source="/HandyControlDemo;component/Resources/Img/3.jpg"></Image>
|
||||
<TextBlock Text="示例文本" Style="{StaticResource TextBlockDefault}" FontSize="100" FontWeight="Bold" Foreground="White"></TextBlock>
|
||||
</Grid>
|
||||
<Image Width="600" Stretch="UniformToFill" Source="/HandyControlDemo;component/Resources/Img/4.jpg"></Image>
|
||||
<Image Width="600" Stretch="UniformToFill" Source="/HandyControlDemo;component/Resources/Img/5.jpg"></Image>
|
||||
</controls:Carousel>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// CarouselDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CarouselDemoCtl
|
||||
{
|
||||
public CarouselDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.ColorPickerDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Background="White"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl">
|
||||
<controls:TransitioningContentControl>
|
||||
<StackPanel Orientation="Horizontal" Margin="32">
|
||||
<controls:ColorPicker Name="ColorPicker"/>
|
||||
<Border Margin="32,0,0,0" Height="100" Width="100" BorderThickness="1" BorderBrush="{StaticResource BorderBrush}" CornerRadius="50" Background="{Binding SelectedBrush,ElementName=ColorPicker}"></Border>
|
||||
</StackPanel>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// ColorPickerDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ColorPickerDemoCtl
|
||||
{
|
||||
public ColorPickerDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.CompareSliderDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl"
|
||||
Background="White">
|
||||
<controls:TransitioningContentControl>
|
||||
<controls:ScrollViewer>
|
||||
<WrapPanel ItemHeight="384" ItemWidth="632">
|
||||
<controls:CompareSlider Value="5" Width="600" Height="352">
|
||||
<controls:CompareSlider.TargetContent>
|
||||
<Border>
|
||||
<Border.Background>
|
||||
<ImageBrush ImageSource="/HandyControlDemo;component/Resources/Img/b1.jpg"/>
|
||||
</Border.Background>
|
||||
</Border>
|
||||
</controls:CompareSlider.TargetContent>
|
||||
<controls:CompareSlider.SourceContent>
|
||||
<Border>
|
||||
<Border.Background>
|
||||
<ImageBrush ImageSource="/HandyControlDemo;component/Resources/Img/b2.jpg"/>
|
||||
</Border.Background>
|
||||
</Border>
|
||||
</controls:CompareSlider.SourceContent>
|
||||
</controls:CompareSlider>
|
||||
<controls:CompareSlider Orientation="Vertical" Value="5" Width="600" Height="352">
|
||||
<controls:CompareSlider.TargetContent>
|
||||
<Border>
|
||||
<Border.Background>
|
||||
<ImageBrush ImageSource="/HandyControlDemo;component/Resources/Img/b1.jpg"/>
|
||||
</Border.Background>
|
||||
</Border>
|
||||
</controls:CompareSlider.TargetContent>
|
||||
<controls:CompareSlider.SourceContent>
|
||||
<Border>
|
||||
<Border.Background>
|
||||
<ImageBrush ImageSource="/HandyControlDemo;component/Resources/Img/b2.jpg"/>
|
||||
</Border.Background>
|
||||
</Border>
|
||||
</controls:CompareSlider.SourceContent>
|
||||
</controls:CompareSlider>
|
||||
</WrapPanel>
|
||||
</controls:ScrollViewer>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// CompareSliderDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CompareSliderDemoCtl
|
||||
{
|
||||
public CompareSliderDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.GrowlDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl"
|
||||
DataContext="{Binding GrowlDemo,Source={StaticResource Locator}}"
|
||||
Background="White">
|
||||
<controls:TransitioningContentControl>
|
||||
<WrapPanel Margin="32">
|
||||
<Button Command="{Binding InfoCmd}" Content="Info" Margin="0,5,5,5" Style="{StaticResource ButtonPrimary}"></Button>
|
||||
<Button Command="{Binding SuccessCmd}" Content="Success" Margin="5" Style="{StaticResource ButtonSuccess}"></Button>
|
||||
<Button Command="{Binding WarningCmd}" Content="Warning" Margin="5" Style="{StaticResource ButtonWarning}"></Button>
|
||||
<Button Command="{Binding ErrorCmd}" Content="Error" Margin="5" Style="{StaticResource ButtonDanger}"></Button>
|
||||
<Button Command="{Binding AskCmd}" Content="Ask" Margin="5" Background="BlueViolet" Foreground="White"></Button>
|
||||
<Button Command="{Binding FatalCmd}" Content="Fatal" Margin="5,0"></Button>
|
||||
<Button Command="{Binding ClearCmd}" Content="Clear" Margin="5,0,0,0"></Button>
|
||||
</WrapPanel>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// GrowlDemoGrid.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class GrowlDemoCtl
|
||||
{
|
||||
public GrowlDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.ImageBrowserDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Background="White"
|
||||
DataContext="{Binding ImageBrowserDemo,Source={StaticResource Locator}}"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl">
|
||||
<controls:TransitioningContentControl>
|
||||
<Button Command="{Binding OpenImgCmd}" Content="{StaticResource OpenImageBrowser}" Style="{StaticResource ButtonPrimary}" Margin="32"></Button>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// ImageBrowserDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ImageBrowserDemoCtl
|
||||
{
|
||||
public ImageBrowserDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.LoadingDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Background="White"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl">
|
||||
<controls:TransitioningContentControl>
|
||||
<StackPanel Width="600" Margin="32">
|
||||
<controls:LoadingLine></controls:LoadingLine>
|
||||
<controls:LoadingLine Margin="0,30" Foreground="BlueViolet" Style="{StaticResource LoadingLineLarge}"></controls:LoadingLine>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<controls:LoadingCircle></controls:LoadingCircle>
|
||||
<Border VerticalAlignment="Center" Background="{DynamicResource PrimaryBrush}" CornerRadius="10">
|
||||
<controls:LoadingCircle Style="{StaticResource LoadingCircleLight}" Margin="10"></controls:LoadingCircle>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// LoadingDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class LoadingDemoCtl
|
||||
{
|
||||
public LoadingDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.PaginationDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Background="White"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl">
|
||||
<controls:TransitioningContentControl>
|
||||
<controls:Pagination Margin="32" Width="600" MaxPageCount="10"></controls:Pagination>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// PaginationDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class PaginationDemoCtl
|
||||
{
|
||||
public PaginationDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.TimeBarDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl"
|
||||
Background="White">
|
||||
<controls:TransitioningContentControl>
|
||||
<controls:TimeBar BorderThickness="0" Margin="32" Background="{StaticResource PrimaryBrush}" Width="600"></controls:TimeBar>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// TimeBarDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class TimeBarDemoCtl
|
||||
{
|
||||
public TimeBarDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<Border controls:ScrollViewer.IsEnableInertia="True"
|
||||
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
|
||||
xmlns:command="http://www.galasoft.ch/mvvmlight"
|
||||
x:Class="HandyControlDemo.UserControl.LeftMainContent"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:data="clr-namespace:HandyControlDemo.Data"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
<TreeView controls:ScrollViewer.IsEnableInertia="True" BorderThickness="0">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="SelectedItemChanged">
|
||||
<command:EventToCommand Command="{Binding SwitchDemoCmd}" PassEventArgsToCommand="True" />
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
<TreeViewItem IsExpanded="True" Header="{StaticResource Styles}">
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadButtonDemoCtl}" Header="{StaticResource Button}"/>
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadToggleButtonDemoCtl}" Header="{StaticResource ToggleButton}"/>
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadExpanderDemoCtl}" Header="{StaticResource Expander}"/>
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadProgressBarDemoCtl}" Header="{StaticResource ProgressBar}"/>
|
||||
</TreeViewItem>
|
||||
<TreeViewItem IsExpanded="True" Header="{StaticResource Controls}">
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadGrowlDemoCtl}" Header="{StaticResource Growl}"/>
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadLoadingDemoCtl}" Header="{StaticResource Loading}"/>
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadImageBrowserDemoCtl}" Header="{StaticResource ImageBrowser}"/>
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadColorPickerDemoCtl}" Header="{StaticResource ColorPicker}"/>
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadCarouselDemoCtl}" Header="{StaticResource Carousel}"/>
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadCompareSliderDemoCtl}" Header="{StaticResource CompareSlider}"/>
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadTimeBarDemoCtl}" Header="{StaticResource TimeBar}"/>
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadPaginationDemoCtl}" Header="{StaticResource Pagination}"/>
|
||||
<TreeViewItem Tag="{x:Static data:MessageToken.LoadAnimationPathDemoCtl}" Header="{StaticResource AnimationPath}"/>
|
||||
</TreeViewItem>
|
||||
</TreeView>
|
||||
</Border>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 左侧主内容
|
||||
/// </summary>
|
||||
public partial class LeftMainContent
|
||||
{
|
||||
public LeftMainContent()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<Border xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
x:Class="HandyControlDemo.UserControl.MainContent"
|
||||
Background="#f0f0f0">
|
||||
<Border Background="{StaticResource MainContentBackground}">
|
||||
<Grid Name="GridMain" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="16,0,16,16">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Name="BorderEffect" Grid.RowSpan="2" Background="White" CornerRadius="0,0,10,10" Effect="{StaticResource EffectShadow4}"></Border>
|
||||
<Border Height="32" Name="BorderTitle" Grid.Row="0" Background="{StaticResource PrimaryBrush}">
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Foreground="White" Text="{Binding ContentTitle}"></TextBlock>
|
||||
</Border>
|
||||
<Border Grid.Row="1" ClipToBounds="True">
|
||||
<ContentPresenter Name="PresenterMain" Margin="0,0,0,10" Content="{Binding SubContent}"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Border>
|
||||
@@ -0,0 +1,43 @@
|
||||
using System.Windows;
|
||||
using HandyControl.Tools.Extension;
|
||||
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 主内容
|
||||
/// </summary>
|
||||
public partial class MainContent
|
||||
{
|
||||
private bool _isFull;
|
||||
|
||||
public MainContent()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void FullSwitch(bool isFull)
|
||||
{
|
||||
if (_isFull == isFull) return;
|
||||
_isFull = isFull;
|
||||
if (_isFull)
|
||||
{
|
||||
BorderEffect.Collapse();
|
||||
BorderTitle.Collapse();
|
||||
GridMain.HorizontalAlignment = HorizontalAlignment.Stretch;
|
||||
GridMain.VerticalAlignment = VerticalAlignment.Stretch;
|
||||
GridMain.Margin = new Thickness();
|
||||
PresenterMain.Margin = new Thickness();
|
||||
}
|
||||
else
|
||||
{
|
||||
BorderEffect.Show();
|
||||
BorderTitle.Show();
|
||||
GridMain.HorizontalAlignment = HorizontalAlignment.Center;
|
||||
GridMain.VerticalAlignment = VerticalAlignment.Top;
|
||||
GridMain.Margin = new Thickness(16, 0, 16, 16);
|
||||
PresenterMain.Margin = new Thickness(0, 0, 0, 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.ButtonDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl"
|
||||
Background="White">
|
||||
<controls:TransitioningContentControl>
|
||||
<controls:ScrollViewer IsEnableInertia="True">
|
||||
<StackPanel Margin="32">
|
||||
<WrapPanel ItemWidth="160" ItemHeight="130">
|
||||
<StackPanel>
|
||||
<Button Content="默认" Margin="5"></Button>
|
||||
<Button IsEnabled="False" Content="默认" Margin="5"></Button>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Content="主要" Margin="5" Style="{StaticResource ButtonPrimary}"></Button>
|
||||
<Button IsEnabled="False" Content="主要" Margin="5" Style="{StaticResource ButtonPrimary}"></Button>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ButtonPrimary"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Content="成功" Margin="5" Style="{StaticResource ButtonSuccess}"></Button>
|
||||
<Button IsEnabled="False" Content="成功" Margin="5" Style="{StaticResource ButtonSuccess}"></Button>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ButtonSuccess"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Content="信息" Margin="5" Style="{StaticResource ButtonInfo}"></Button>
|
||||
<Button IsEnabled="False" Content="信息" Margin="5" Style="{StaticResource ButtonInfo}"></Button>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ButtonInfo"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Content="警告" Margin="5" Style="{StaticResource ButtonWarning}"></Button>
|
||||
<Button IsEnabled="False" Content="警告" Margin="5" Style="{StaticResource ButtonWarning}"></Button>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ButtonWarning"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Content="危险" Margin="5" Style="{StaticResource ButtonDanger}"></Button>
|
||||
<Button IsEnabled="False" Content="危险" Margin="5" Style="{StaticResource ButtonDanger}"></Button>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ButtonDanger"></TextBlock>
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
<WrapPanel ItemWidth="160" ItemHeight="130">
|
||||
<StackPanel>
|
||||
<Button Width="50" Padding="16,8" Margin="5" Style="{StaticResource ButtonIconDefault}" controls:IconElement.Angle="45" controls:IconElement.Geometry="{StaticResource DeleteGeometry}"></Button>
|
||||
<Button Width="50" Padding="16,8" IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconDefault}" controls:IconElement.Geometry="{StaticResource DeleteGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(DeleteGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Width="50" Margin="5" Style="{StaticResource ButtonIconPrimary}" controls:IconElement.Geometry="{StaticResource ClockGeometry}"></Button>
|
||||
<Button Width="50" IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconPrimary}" controls:IconElement.Geometry="{StaticResource ClockGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(ClockGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Width="50" Margin="5" Style="{StaticResource ButtonIconSuccess}" controls:IconElement.Geometry="{StaticResource CalendarGeometry}"></Button>
|
||||
<Button Width="50" IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconSuccess}" controls:IconElement.Geometry="{StaticResource CalendarGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(CalendarGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Width="50" Padding="16,8" Margin="5" Style="{StaticResource ButtonIconInfo}" controls:IconElement.Geometry="{StaticResource DownGeometry}"></Button>
|
||||
<Button Width="50" Padding="16,8" IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconInfo}" controls:IconElement.Geometry="{StaticResource DownGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(DownGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Width="50" Margin="5" Style="{StaticResource ButtonIconWarning}" controls:IconElement.Geometry="{StaticResource LeftGeometry}"></Button>
|
||||
<Button Width="50" IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconWarning}" controls:IconElement.Geometry="{StaticResource LeftGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(LeftGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Width="50" Padding="16,8" Margin="5" Style="{StaticResource ButtonIconDanger}" controls:IconElement.Geometry="{StaticResource DeleteGeometry}"></Button>
|
||||
<Button Width="50" Padding="16,8" IsEnabled="False" Margin="5" Style="{StaticResource ButtonIconDanger}" controls:IconElement.Geometry="{StaticResource DeleteGeometry}"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonIconPrimary(DeleteGeometry)"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<Button Margin="5" Height="28" Padding="10,0" Background="#24292e" Foreground="White" Content="透明按钮" Style="{StaticResource ButtonOpacityStyle}" controls:BackgroundSwitchElement.MouseHoverBackground="Red" controls:BackgroundSwitchElement.MouseDownBackground="PaleVioletRed"></Button>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ButtonOpacityStyle"></TextBlock>
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
</StackPanel>
|
||||
</controls:ScrollViewer>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// ButtonDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ButtonDemoCtl
|
||||
{
|
||||
public ButtonDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.ExpanderDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Background="White"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl">
|
||||
<controls:TransitioningContentControl>
|
||||
<StackPanel Margin="32">
|
||||
<Expander Header="标题1" BorderThickness="1,1,1,0" BorderBrush="{StaticResource BorderBrush}" Width="240" HorizontalAlignment="Left">
|
||||
<Border Height="100" Background="{StaticResource BackgroundBrush}"></Border>
|
||||
</Expander>
|
||||
<Expander Header="标题1" BorderThickness="1,1,1,0" BorderBrush="{StaticResource BorderBrush}" Width="240" HorizontalAlignment="Left">
|
||||
<Border Height="100" Background="{StaticResource BackgroundBrush}"></Border>
|
||||
</Expander>
|
||||
<Expander Header="标题1" BorderThickness="1,1,1,0" BorderBrush="{StaticResource BorderBrush}" Width="240" HorizontalAlignment="Left">
|
||||
<Border Height="100" Background="{StaticResource BackgroundBrush}"></Border>
|
||||
</Expander>
|
||||
<Expander Header="标题1" BorderThickness="1" BorderBrush="{StaticResource BorderBrush}" Width="240" HorizontalAlignment="Left">
|
||||
<Border Height="100" Background="{StaticResource BackgroundBrush}"></Border>
|
||||
</Expander>
|
||||
</StackPanel>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,15 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// ExpanderDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ExpanderDemoCtl
|
||||
{
|
||||
public ExpanderDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.ProgressBarDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Background="White"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl">
|
||||
<controls:TransitioningContentControl>
|
||||
<WrapPanel Margin="32" ItemWidth="600">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<StackPanel Width="400">
|
||||
<ProgressBar Value="20" Margin="0,0,0,10"></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarSuccess}" Margin="0,0,0,10" Value="40"></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarInfo}" Margin="0,0,0,10" Value="60"></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarWarning}" Margin="0,0,0,10" Value="80"></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarDanger}" Margin="0,0,0,10" Value="100" Maximum="200"></ProgressBar>
|
||||
</StackPanel>
|
||||
<StackPanel Margin="10,0,0,0" Width="200" HorizontalAlignment="Left">
|
||||
<TextBlock Padding="0,2,0,3" Style="{StaticResource TextBlockDefault}" Text=""></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarSuccess" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarInfo" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarWarning" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarDanger" HorizontalAlignment="Left"></TextBlock>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<StackPanel Width="400">
|
||||
<ProgressBar Style="{StaticResource ProgressBarPrimaryStripe}" Margin="0,0,0,10" Value="120" Maximum="200" ></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarSuccessStripe}" Margin="0,0,0,10" Value="60" Maximum="200" ></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarInfoStripe}" Margin="0,0,0,10" Value="50" Maximum="200" ></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarWarningStripe}" Margin="0,0,0,10" Value="180" Maximum="200" ></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarDangerStripe}" Margin="0,0,0,10" Value="110" Maximum="200" ></ProgressBar>
|
||||
<ProgressBar Style="{StaticResource ProgressBarFlat}" Margin="0,8,0,10" Value="110" Maximum="200" ></ProgressBar>
|
||||
</StackPanel>
|
||||
<StackPanel Margin="10,0,0,0" Width="200" HorizontalAlignment="Left">
|
||||
<TextBlock Padding="0,2,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarPrimaryStripe" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarSuccessStripe" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarInfoStripe" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarWarningStripe" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarDangerStripe" HorizontalAlignment="Left"></TextBlock>
|
||||
<TextBlock Padding="0,12,0,3" Style="{StaticResource TextBlockDefault}" Text="ProgressBarPlayer" HorizontalAlignment="Left"></TextBlock>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// ProgressBarDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ProgressBarDemoCtl
|
||||
{
|
||||
public ProgressBarDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
<UserControl x:Class="HandyControlDemo.UserControl.ToggleButtonDemoCtl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Background="White"
|
||||
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl">
|
||||
<controls:TransitioningContentControl>
|
||||
<controls:ScrollViewer IsEnableInertia="True">
|
||||
<WrapPanel Margin="32" ItemWidth="160" ItemHeight="130">
|
||||
<StackPanel>
|
||||
<ToggleButton IsChecked="True" Content="默认" Margin="5"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="默认" Margin="5"></ToggleButton>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton IsChecked="True" Content="主要" Margin="5" Style="{StaticResource ToggleButtonPrimary}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="主要" Margin="5" Style="{StaticResource ToggleButtonPrimary}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonPrimary"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton IsChecked="True" Content="成功" Margin="5" Style="{StaticResource ToggleButtonSuccess}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="成功" Margin="5" Style="{StaticResource ToggleButtonSuccess}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonSuccess"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Content="信息" Margin="5" Style="{StaticResource ToggleButtonInfo}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="信息" Margin="5" Style="{StaticResource ToggleButtonInfo}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonInfo"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Content="警告" Margin="5" Style="{StaticResource ToggleButtonWarning}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="警告" Margin="5" Style="{StaticResource ToggleButtonWarning}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonWarning"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Content="危险" Margin="5" Style="{StaticResource ToggleButtonDanger}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Content="危险" Margin="5" Style="{StaticResource ToggleButtonDanger}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonDanger"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Margin="5" Style="{StaticResource ToggleButtonIcon}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Margin="5" Style="{StaticResource ToggleButtonIcon}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ToggleButtonIconTransparent"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Margin="5" Style="{StaticResource ToggleButtonIconPrimary}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Margin="5" Style="{StaticResource ToggleButtonIconPrimary}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ToggleButtonIconTransparent"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Margin="5" Style="{StaticResource ToggleButtonIconSuccess}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Margin="5" Style="{StaticResource ToggleButtonIconSuccess}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ToggleButtonIconTransparent"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Margin="5" Style="{StaticResource ToggleButtonIconInfo}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Margin="5" Style="{StaticResource ToggleButtonIconInfo}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ToggleButtonIconTransparent"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Margin="5" Style="{StaticResource ToggleButtonIconWarning}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Margin="5" Style="{StaticResource ToggleButtonIconWarning}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ToggleButtonIconTransparent"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Margin="5" Style="{StaticResource ToggleButtonIconDanger}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Margin="5" Style="{StaticResource ToggleButtonIconDanger}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ToggleButtonIconTransparent"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Margin="5" Style="{StaticResource ToggleButtonIconTransparent}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<ToggleButton IsEnabled="False" Margin="5" Style="{StaticResource ToggleButtonIconTransparent}" controls:IconSwitchElement.Geometry="{StaticResource DeleteGeometry}" controls:IconSwitchElement.GeometrySelected="{StaticResource DownGeometry}"></ToggleButton>
|
||||
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Style="{StaticResource TextBlockDefault}" Text="ToggleButtonIconTransparent"></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<ToggleButton Height="30" IsChecked="True" Margin="5" Style="{StaticResource ToggleButtonSwitch}"></ToggleButton>
|
||||
<ToggleButton Height="30" Margin="5" IsEnabled="False" Style="{StaticResource ToggleButtonSwitch}"></ToggleButton>
|
||||
<TextBlock Style="{StaticResource TextBlockDefault}" Text="ToggleButtonSwitch"></TextBlock>
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
</controls:ScrollViewer>
|
||||
</controls:TransitioningContentControl>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace HandyControlDemo.UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// ToggleButtonDemoCtl.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ToggleButtonDemoCtl
|
||||
{
|
||||
public ToggleButtonDemoCtl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using GalaSoft.MvvmLight.Command;
|
||||
using HandyControl.Controls;
|
||||
using HandyControl.Tools;
|
||||
|
||||
namespace HandyControlDemo.ViewModel
|
||||
{
|
||||
public class GrowlDemoViewModel
|
||||
{
|
||||
public RelayCommand InfoCmd => new Lazy<RelayCommand>(() =>
|
||||
new RelayCommand(() => Growl.Info(ResourceHelper.GetString("GrowlInfo")))).Value;
|
||||
|
||||
public RelayCommand SuccessCmd => new Lazy<RelayCommand>(() =>
|
||||
new RelayCommand(() => Growl.Success(ResourceHelper.GetString("GrowlSuccess")))).Value;
|
||||
|
||||
public RelayCommand WarningCmd => new Lazy<RelayCommand>(() =>
|
||||
new RelayCommand(() => Growl.Warning(ResourceHelper.GetString("GrowlWarning")))).Value;
|
||||
|
||||
public RelayCommand ErrorCmd => new Lazy<RelayCommand>(() =>
|
||||
new RelayCommand(() => Growl.Error(ResourceHelper.GetString("GrowlError")))).Value;
|
||||
|
||||
public RelayCommand AskCmd => new Lazy<RelayCommand>(() =>
|
||||
new RelayCommand(() => Growl.Ask("GrowlAsk", (closeAction, b) =>
|
||||
{
|
||||
Growl.Info(b.ToString());
|
||||
closeAction?.Invoke();
|
||||
}))).Value;
|
||||
|
||||
public RelayCommand FatalCmd => new Lazy<RelayCommand>(() =>
|
||||
new RelayCommand(() => Growl.Fatal(ResourceHelper.GetString("GrowlFatal")))).Value;
|
||||
|
||||
public RelayCommand ClearCmd => new Lazy<RelayCommand>(() =>
|
||||
new RelayCommand(Growl.Clear)).Value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using GalaSoft.MvvmLight.Command;
|
||||
using HandyControl.Controls;
|
||||
|
||||
namespace HandyControlDemo.ViewModel
|
||||
{
|
||||
public class ImageBrowserDemoViewModel
|
||||
{
|
||||
public RelayCommand OpenImgCmd => new Lazy<RelayCommand>(() =>
|
||||
new RelayCommand(() =>
|
||||
new ImageBrowser(new Uri("pack://application:,,,/Resources/Img/1.jpg")).Show())).Value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using GalaSoft.MvvmLight;
|
||||
using GalaSoft.MvvmLight.Command;
|
||||
using GalaSoft.MvvmLight.Messaging;
|
||||
using HandyControlDemo.Data;
|
||||
using HandyControlDemo.UserControl;
|
||||
|
||||
namespace HandyControlDemo.ViewModel
|
||||
{
|
||||
public class MainViewModel : ViewModelBase
|
||||
{
|
||||
#region 字段
|
||||
|
||||
/// <summary>
|
||||
/// 内容标题
|
||||
/// </summary>
|
||||
private object _contentTitle;
|
||||
|
||||
/// <summary>
|
||||
/// 左侧主内容
|
||||
/// </summary>
|
||||
private object _leftMainContent;
|
||||
|
||||
/// <summary>
|
||||
/// 主内容
|
||||
/// </summary>
|
||||
private object _mainContent;
|
||||
|
||||
/// <summary>
|
||||
/// 子内容
|
||||
/// </summary>
|
||||
private object _subContent;
|
||||
|
||||
#endregion
|
||||
|
||||
public MainViewModel()
|
||||
{
|
||||
LeftMainContent = ControlLocator.Instance.LeftMainContent;
|
||||
MainContent = ControlLocator.Instance.MainContent;
|
||||
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadGrowlDemoCtl, obj => SubContent = ControlLocator.Instance.GrowlDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadLoadingDemoCtl, obj => SubContent = ControlLocator.Instance.LoadingDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadImageBrowserDemoCtl, obj => SubContent = ControlLocator.Instance.ImageBrowserDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadColorPickerDemoCtl, obj => SubContent = ControlLocator.Instance.ColorPickerDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadCarouselDemoCtl, obj => SubContent = ControlLocator.Instance.CarouselDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadCompareSliderDemoCtl, obj => SubContent = ControlLocator.Instance.CompareSliderDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadTimeBarDemoCtl, obj => SubContent = ControlLocator.Instance.TimeBarDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadPaginationDemoCtl, obj => SubContent = ControlLocator.Instance.PaginationDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadExpanderDemoCtl, obj => SubContent = ControlLocator.Instance.ExpanderDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadProgressBarDemoCtl, obj => SubContent = ControlLocator.Instance.ProgressBarDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadAnimationPathDemoCtl, obj => SubContent = ControlLocator.Instance.AnimationPathDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadButtonDemoCtl, obj => SubContent = ControlLocator.Instance.ButtonDemoCtl);
|
||||
Messenger.Default.Register<object>(this, MessageToken.LoadToggleButtonDemoCtl, obj => SubContent = ControlLocator.Instance.ToggleButtonDemoCtl);
|
||||
}
|
||||
|
||||
#region 属性
|
||||
|
||||
/// <summary>
|
||||
/// 左侧主内容
|
||||
/// </summary>
|
||||
public object LeftMainContent
|
||||
{
|
||||
get => _leftMainContent;
|
||||
set => Set(ref _leftMainContent, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 主内容
|
||||
/// </summary>
|
||||
public object MainContent
|
||||
{
|
||||
get => _mainContent;
|
||||
set => Set(ref _mainContent, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 子内容
|
||||
/// </summary>
|
||||
public object SubContent
|
||||
{
|
||||
get => _subContent;
|
||||
set => Set(ref _subContent, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 内容标题
|
||||
/// </summary>
|
||||
public object ContentTitle
|
||||
{
|
||||
get => _contentTitle;
|
||||
set => Set(ref _contentTitle, value);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 命令
|
||||
|
||||
/// <summary>
|
||||
/// 切换例子命令
|
||||
/// </summary>
|
||||
public RelayCommand<RoutedPropertyChangedEventArgs<object>> SwitchDemoCmd =>
|
||||
new Lazy<RelayCommand<RoutedPropertyChangedEventArgs<object>>>(() =>
|
||||
new RelayCommand<RoutedPropertyChangedEventArgs<object>>(SwitchDemo)).Value;
|
||||
|
||||
#endregion
|
||||
|
||||
#region 方法
|
||||
|
||||
/// <summary>
|
||||
/// 切换例子
|
||||
/// </summary>
|
||||
private void SwitchDemo(RoutedPropertyChangedEventArgs<object> e)
|
||||
{
|
||||
if (e.NewValue is TreeViewItem item)
|
||||
{
|
||||
if (item.Tag is string tag)
|
||||
{
|
||||
ContentTitle = item.Header;
|
||||
Messenger.Default.Send<object>(null, tag);
|
||||
}
|
||||
else
|
||||
{
|
||||
ContentTitle = null;
|
||||
SubContent = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using System;
|
||||
using System.Windows;
|
||||
using CommonServiceLocator;
|
||||
using GalaSoft.MvvmLight.Ioc;
|
||||
|
||||
namespace HandyControlDemo.ViewModel
|
||||
{
|
||||
public class ViewModelLocator
|
||||
{
|
||||
public ViewModelLocator()
|
||||
{
|
||||
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
|
||||
|
||||
SimpleIoc.Default.Register<MainViewModel>();
|
||||
SimpleIoc.Default.Register<GrowlDemoViewModel>();
|
||||
SimpleIoc.Default.Register<ImageBrowserDemoViewModel>();
|
||||
}
|
||||
|
||||
public static ViewModelLocator Instance => new Lazy<ViewModelLocator>(() =>
|
||||
Application.Current.TryFindResource("Locator") as ViewModelLocator).Value;
|
||||
|
||||
#region Vm
|
||||
|
||||
public MainViewModel Main => ServiceLocator.Current.GetInstance<MainViewModel>();
|
||||
|
||||
public GrowlDemoViewModel GrowlDemo => ServiceLocator.Current.GetInstance<GrowlDemoViewModel>();
|
||||
|
||||
public ImageBrowserDemoViewModel ImageBrowserDemo => ServiceLocator.Current.GetInstance<ImageBrowserDemoViewModel>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="CommonServiceLocator" version="2.0.2" targetFramework="net462" />
|
||||
<package id="MvvmLightLibs" version="5.4.1" targetFramework="net462" />
|
||||
</packages>
|
||||
@@ -37,10 +37,23 @@
|
||||

|
||||
|
||||
### 8、对比滑块CompareSlider
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 9、信息通知Growl
|
||||
|
||||

|
||||
|
||||
### 10、动画路径AnimationPath
|
||||
|
||||

|
||||
|
||||
### 11、进度条ProgressBar
|
||||
|
||||

|
||||
|
||||
# 使用方法
|
||||
|
||||
第一步:添加HandyControl的引用;
|
||||
@@ -56,23 +69,26 @@
|
||||
```
|
||||
第三步:enjoy coding
|
||||
|
||||
# 其他主要功能
|
||||
1、如何让**Scrollviewer**具有惯性?只要:
|
||||
# FAQ
|
||||
* 如何让**Scrollviewer**具有惯性?只要:
|
||||
```XML
|
||||
<controls:ScrollViewer IsEnableInertia="True">
|
||||
<!--你的控件-->
|
||||
</controls:ScrollViewer>
|
||||
```
|
||||
|
||||
2、如何让**Scrollviewer**具有穿透效果?只要:
|
||||
* 如何让**Scrollviewer**具有穿透效果?只要:
|
||||
```XML
|
||||
<controls:ScrollViewer IsPenetrating="True">
|
||||
<!--你的控件-->
|
||||
</controls:ScrollViewer>
|
||||
```
|
||||
|
||||
# 下一版本计划
|
||||
* 为什么我连编译都无法通过:
|
||||
编译之前,请确保IDE为vs2017且c#最低版本为7.0,HandyControl目前仅支持4.5以上的.net环境,低版本支持估计很快就有了。
|
||||
|
||||
1、添加信息通知控件;
|
||||
2、添加进度条样式;
|
||||
3、添加路径动画控件;
|
||||
# v1.3.0版本计划
|
||||
|
||||
1、添加可拖动的tabcontrol;
|
||||
2、添加时间、日历控件;
|
||||
3、添加步骤条控件;
|
||||
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 270 KiB |
|
After Width: | Height: | Size: 430 KiB |