diff --git a/HandyControl/Themes/Styles/Base/ProgressBarBaseStyle.xaml b/HandyControl/Themes/Styles/Base/ProgressBarBaseStyle.xaml
index e6279918..1619a5a2 100644
--- a/HandyControl/Themes/Styles/Base/ProgressBarBaseStyle.xaml
+++ b/HandyControl/Themes/Styles/Base/ProgressBarBaseStyle.xaml
@@ -113,18 +113,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/HandyControlDemo/Service/DataService.cs b/HandyControlDemo/Service/DataService.cs
index f6502847..0e88b5a7 100644
--- a/HandyControlDemo/Service/DataService.cs
+++ b/HandyControlDemo/Service/DataService.cs
@@ -36,7 +36,7 @@ namespace HandyControlDemo.Service
Name = $"Name{i}",
Type = (DemoType)i,
DataList = dataList,
- ImgPath = $"/HandyControlDemo;component/Resources/Img/Avatar/avatar{i % 7}.png",
+ ImgPath = $"/HandyControlDemo;component/Resources/Img/Avatar/avatar{i % 6 + 1}.png",
Remark = new string(i.ToString()[0], 10)
};
list.Add(model);
diff --git a/HandyControlDemo/UserControl/Controls/ProgressBarDemoCtl.xaml b/HandyControlDemo/UserControl/Controls/ProgressBarDemoCtl.xaml
index aec4b146..f1955091 100644
--- a/HandyControlDemo/UserControl/Controls/ProgressBarDemoCtl.xaml
+++ b/HandyControlDemo/UserControl/Controls/ProgressBarDemoCtl.xaml
@@ -16,7 +16,7 @@
-
+
diff --git a/Net40/HandyControlDemo_Net40/Data/MessageToken.cs b/Net40/HandyControlDemo_Net40/Data/MessageToken.cs
index e63c9770..44fa6c82 100644
--- a/Net40/HandyControlDemo_Net40/Data/MessageToken.cs
+++ b/Net40/HandyControlDemo_Net40/Data/MessageToken.cs
@@ -36,7 +36,7 @@
public static readonly string PreviewSliderDemoCtl = nameof(PreviewSliderDemoCtl);
- public static readonly string CircleProgressBarDemoCtl = nameof(CircleProgressBarDemoCtl);
+ public static readonly string ProgressBarDemoCtl = nameof(ProgressBarDemoCtl);
public static readonly string TextBoxDemoCtl = nameof(TextBoxDemoCtl);
@@ -84,29 +84,33 @@
public static readonly string GotoTopDemoCtl = nameof(GotoTopDemoCtl);
+ public static readonly string BadgeDemoCtl = nameof(BadgeDemoCtl);
+
+ public static readonly string GravatarDemoCtl = nameof(GravatarDemoCtl);
+
public static readonly string ButtonDemoCtl = nameof(ButtonDemoCtl);
public static readonly string ToggleButtonDemoCtl = nameof(ToggleButtonDemoCtl);
public static readonly string ExpanderDemoCtl = nameof(ExpanderDemoCtl);
- public static readonly string ProgressBarDemoCtl = nameof(ProgressBarDemoCtl);
+ public static readonly string NativeProgressBarDemoCtl = nameof(NativeProgressBarDemoCtl);
public static readonly string TabControlDemoCtl = nameof(TabControlDemoCtl);
public static readonly string CalendarDemoCtl = nameof(CalendarDemoCtl);
- public static readonly string NaiveDatePickerDemoCtl = nameof(NaiveDatePickerDemoCtl);
+ public static readonly string NativeDatePickerDemoCtl = nameof(NativeDatePickerDemoCtl);
- public static readonly string NaiveTextBoxDemoCtl = nameof(NaiveTextBoxDemoCtl);
+ public static readonly string NativeTextBoxDemoCtl = nameof(NativeTextBoxDemoCtl);
public static readonly string TextBlockDemoCtl = nameof(TextBlockDemoCtl);
- public static readonly string NaiveComboBoxDemoCtl = nameof(NaiveComboBoxDemoCtl);
+ public static readonly string NativeComboBoxDemoCtl = nameof(NativeComboBoxDemoCtl);
- public static readonly string NaivePasswordBoxDemoCtl = nameof(NaivePasswordBoxDemoCtl);
+ public static readonly string NativePasswordBoxDemoCtl = nameof(NativePasswordBoxDemoCtl);
- public static readonly string NaiveTabControlDemoCtl = nameof(NaiveTabControlDemoCtl);
+ public static readonly string NativeTabControlDemoCtl = nameof(NativeTabControlDemoCtl);
public static readonly string DataGridDemoCtl = nameof(DataGridDemoCtl);
@@ -122,7 +126,7 @@
public static readonly string RadioButtonDemoCtl = nameof(RadioButtonDemoCtl);
- public static readonly string NaiveScrollViewerDemoCtl = nameof(NaiveScrollViewerDemoCtl);
+ public static readonly string NativeScrollViewerDemoCtl = nameof(NativeScrollViewerDemoCtl);
public static readonly string BrushDemoCtl = nameof(BrushDemoCtl);
diff --git a/Net40/HandyControlDemo_Net40/Data/MessageToken.tt b/Net40/HandyControlDemo_Net40/Data/MessageToken.tt
index 377d9b64..549a85ed 100644
--- a/Net40/HandyControlDemo_Net40/Data/MessageToken.tt
+++ b/Net40/HandyControlDemo_Net40/Data/MessageToken.tt
@@ -21,7 +21,7 @@ var controlList = new List
"WindowDemoCtl",
"ScrollViewerDemoCtl",
"PreviewSliderDemoCtl",
- "CircleProgressBarDemoCtl",
+ "ProgressBarDemoCtl",
"TextBoxDemoCtl",
"ComboBoxDemoCtl",
"PasswordBoxDemoCtl",
@@ -44,22 +44,24 @@ var controlList = new List
"ProgressButtonDemoCtl",
"TransferDemoCtl",
"ChatBubbleDemoCtl",
- "GotoTopDemoCtl"
+ "GotoTopDemoCtl",
+ "BadgeDemoCtl",
+ "GravatarDemoCtl"
};
var styleList = new List
{
"ButtonDemoCtl",
"ToggleButtonDemoCtl",
"ExpanderDemoCtl",
- "ProgressBarDemoCtl",
+ "NativeProgressBarDemoCtl",
"TabControlDemoCtl",
"CalendarDemoCtl",
- "NaiveDatePickerDemoCtl",
- "NaiveTextBoxDemoCtl",
+ "NativeDatePickerDemoCtl",
+ "NativeTextBoxDemoCtl",
"TextBlockDemoCtl",
- "NaiveComboBoxDemoCtl",
- "NaivePasswordBoxDemoCtl",
- "NaiveTabControlDemoCtl",
+ "NativeComboBoxDemoCtl",
+ "NativePasswordBoxDemoCtl",
+ "NativeTabControlDemoCtl",
"DataGridDemoCtl",
"CheckBoxDemoCtl",
"ListBoxDemoCtl",
@@ -67,7 +69,7 @@ var styleList = new List
"TreeViewDemoCtl",
"BorderDemoCtl",
"RadioButtonDemoCtl",
- "NaiveScrollViewerDemoCtl",
+ "NativeScrollViewerDemoCtl",
"BrushDemoCtl",
"SliderDemoCtl",
"GroupBoxDemoCtl",
diff --git a/Net40/HandyControlDemo_Net40/HandyControlDemo_Net40.csproj b/Net40/HandyControlDemo_Net40/HandyControlDemo_Net40.csproj
index 9eb92b9a..0484b107 100644
--- a/Net40/HandyControlDemo_Net40/HandyControlDemo_Net40.csproj
+++ b/Net40/HandyControlDemo_Net40/HandyControlDemo_Net40.csproj
@@ -112,6 +112,9 @@
AnimationPathDemoCtl.xaml
+
+ BadgeDemoCtl.xaml
+
CalendarWithClockDemoCtl.xaml
@@ -124,8 +127,8 @@
CirclePanelDemoCtl.xaml
-
- CircleProgressBarDemoCtl.xaml
+
+ ProgressBarDemoCtl.xaml
ClockDemoCtl.xaml
@@ -157,6 +160,9 @@
GotoTopDemoCtl.xaml
+
+ GravatarDemoCtl.xaml
+
OutlineTextDemoCtl.xaml
@@ -226,6 +232,9 @@
QQGroupView.xaml
+
+ UnderConstruction.xaml
+
BorderDemoCtl.xaml
@@ -250,14 +259,14 @@
ListViewDemoCtl.xaml
-
- NaiveComboBoxDemoCtl.xaml
+
+ NativeComboBoxDemoCtl.xaml
DataGridDemoCtl.xaml
-
- NaiveDatePickerDemoCtl.xaml
+
+ NativeDatePickerDemoCtl.xaml
ExpanderDemoCtl.xaml
@@ -280,17 +289,17 @@
MenuDemoCtl.xaml
-
- NaiveScrollViewerDemoCtl.xaml
+
+ NativeScrollViewerDemoCtl.xaml
-
- NaiveTabControlDemoCtl.xaml
+
+ NativeTabControlDemoCtl.xaml
-
- NaivePasswordBoxDemoCtl.xaml
+
+ NativePasswordBoxDemoCtl.xaml
-
- ProgressBarDemoCtl.xaml
+
+ NativeProgressBarDemoCtl.xaml
TabControlDemoCtl.xaml
@@ -307,8 +316,8 @@
TextBlockDemoCtl.xaml
-
- NaiveTextBoxDemoCtl.xaml
+
+ NativeTextBoxDemoCtl.xaml
ToggleButtonDemoCtl.xaml
@@ -414,6 +423,10 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
@@ -430,7 +443,7 @@
Designer
MSBuild:Compile
-
+
Designer
MSBuild:Compile
@@ -474,6 +487,10 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
@@ -566,6 +583,10 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
@@ -598,7 +619,7 @@
Designer
MSBuild:Compile
-
+
Designer
MSBuild:Compile
@@ -606,7 +627,7 @@
Designer
MSBuild:Compile
-
+
Designer
MSBuild:Compile
@@ -638,19 +659,19 @@
Designer
MSBuild:Compile
-
+
Designer
MSBuild:Compile
-
+
Designer
MSBuild:Compile
-
+
Designer
MSBuild:Compile
-
+
Designer
MSBuild:Compile
@@ -674,7 +695,7 @@
Designer
MSBuild:Compile
-
+
Designer
MSBuild:Compile
@@ -732,6 +753,9 @@
TextTemplatingFileGenerator
MessageToken.cs
+
+
+
@@ -798,7 +822,6 @@
-
diff --git a/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.Designer.cs b/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.Designer.cs
index cddf738d..073911db 100644
--- a/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.Designer.cs
+++ b/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.Designer.cs
@@ -87,6 +87,15 @@ namespace HandyControlDemo.Properties.Langs {
}
}
+ ///
+ /// 查找类似 标记 的本地化字符串。
+ ///
+ public static string Badge {
+ get {
+ return ResourceManager.GetString("Badge", resourceCulture);
+ }
+ }
+
///
/// 查找类似 填写基本信息 的本地化字符串。
///
@@ -213,15 +222,6 @@ namespace HandyControlDemo.Properties.Langs {
}
}
- ///
- /// 查找类似 圆形进度条 的本地化字符串。
- ///
- public static string CircleProgressBar {
- get {
- return ResourceManager.GetString("CircleProgressBar", resourceCulture);
- }
- }
-
///
/// 查找类似 清空 的本地化字符串。
///
@@ -258,6 +258,24 @@ namespace HandyControlDemo.Properties.Langs {
}
}
+ ///
+ /// 查找类似 敬请期待 的本地化字符串。
+ ///
+ public static string ComingSoon {
+ get {
+ return ResourceManager.GetString("ComingSoon", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 评论 的本地化字符串。
+ ///
+ public static string Comment {
+ get {
+ return ResourceManager.GetString("Comment", resourceCulture);
+ }
+ }
+
///
/// 查找类似 一般 的本地化字符串。
///
@@ -447,6 +465,15 @@ namespace HandyControlDemo.Properties.Langs {
}
}
+ ///
+ /// 查找类似 头像 的本地化字符串。
+ ///
+ public static string Gravatar {
+ get {
+ return ResourceManager.GetString("Gravatar", resourceCulture);
+ }
+ }
+
///
/// 查找类似 分组框 的本地化字符串。
///
@@ -888,6 +915,15 @@ namespace HandyControlDemo.Properties.Langs {
}
}
+ ///
+ /// 查找类似 回复 的本地化字符串。
+ ///
+ public static string Reply {
+ get {
+ return ResourceManager.GetString("Reply", resourceCulture);
+ }
+ }
+
///
/// 查找类似 代码仓库 的本地化字符串。
///
diff --git a/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.en.resx b/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.en.resx
index 3f57a795..b2bc610b 100644
--- a/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.en.resx
+++ b/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.en.resx
@@ -387,9 +387,6 @@
Slider
-
- CircleProgressBar
-
It's not a phone number
@@ -501,4 +498,19 @@
GotoTop
+
+ Badge
+
+
+ Gravatar
+
+
+ ComingSoon
+
+
+ Comment
+
+
+ Reply
+
\ No newline at end of file
diff --git a/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.resx b/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.resx
index 32ab263a..4bfbd4a1 100644
--- a/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.resx
+++ b/Net40/HandyControlDemo_Net40/Properties/Langs/Lang.resx
@@ -387,9 +387,6 @@
滑块
-
- 圆形进度条
-
不是手机号码
@@ -501,4 +498,19 @@
回到顶部
+
+ 标记
+
+
+ 头像
+
+
+ 敬请期待
+
+
+ 评论
+
+
+ 回复
+
\ No newline at end of file
diff --git a/Net40/HandyControlDemo_Net40/Resources/Img/LeftMainContent/DotLarge_16x.png b/Net40/HandyControlDemo_Net40/Resources/Img/LeftMainContent/DotLarge_16x.png
new file mode 100644
index 00000000..c588ac01
Binary files /dev/null and b/Net40/HandyControlDemo_Net40/Resources/Img/LeftMainContent/DotLarge_16x.png differ
diff --git a/Net40/HandyControlDemo_Net40/Resources/Img/LeftMainContent/ShapeArcRing_16x.png b/Net40/HandyControlDemo_Net40/Resources/Img/LeftMainContent/ShapeArcRing_16x.png
deleted file mode 100644
index 64f52301..00000000
Binary files a/Net40/HandyControlDemo_Net40/Resources/Img/LeftMainContent/ShapeArcRing_16x.png and /dev/null differ
diff --git a/Net40/HandyControlDemo_Net40/Resources/Img/LeftMainContent/User_16x.png b/Net40/HandyControlDemo_Net40/Resources/Img/LeftMainContent/User_16x.png
new file mode 100644
index 00000000..391e91e4
Binary files /dev/null and b/Net40/HandyControlDemo_Net40/Resources/Img/LeftMainContent/User_16x.png differ
diff --git a/Net40/HandyControlDemo_Net40/Resources/Img/under_construction.gif b/Net40/HandyControlDemo_Net40/Resources/Img/under_construction.gif
new file mode 100644
index 00000000..b5efd6d8
Binary files /dev/null and b/Net40/HandyControlDemo_Net40/Resources/Img/under_construction.gif differ
diff --git a/Net40/HandyControlDemo_Net40/Service/DataService.cs b/Net40/HandyControlDemo_Net40/Service/DataService.cs
index f6502847..0e88b5a7 100644
--- a/Net40/HandyControlDemo_Net40/Service/DataService.cs
+++ b/Net40/HandyControlDemo_Net40/Service/DataService.cs
@@ -36,7 +36,7 @@ namespace HandyControlDemo.Service
Name = $"Name{i}",
Type = (DemoType)i,
DataList = dataList,
- ImgPath = $"/HandyControlDemo;component/Resources/Img/Avatar/avatar{i % 7}.png",
+ ImgPath = $"/HandyControlDemo;component/Resources/Img/Avatar/avatar{i % 6 + 1}.png",
Remark = new string(i.ToString()[0], 10)
};
list.Add(model);
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Controls/AnimationPathDemoCtl.xaml b/Net40/HandyControlDemo_Net40/UserControl/Controls/AnimationPathDemoCtl.xaml
index 378c4c43..f4381a72 100644
--- a/Net40/HandyControlDemo_Net40/UserControl/Controls/AnimationPathDemoCtl.xaml
+++ b/Net40/HandyControlDemo_Net40/UserControl/Controls/AnimationPathDemoCtl.xaml
@@ -4,6 +4,8 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl">
-
+
+
+
-
+
\ No newline at end of file
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Controls/BadgeDemoCtl.xaml b/Net40/HandyControlDemo_Net40/UserControl/Controls/BadgeDemoCtl.xaml
new file mode 100644
index 00000000..14053024
--- /dev/null
+++ b/Net40/HandyControlDemo_Net40/UserControl/Controls/BadgeDemoCtl.xaml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Controls/BadgeDemoCtl.xaml.cs b/Net40/HandyControlDemo_Net40/UserControl/Controls/BadgeDemoCtl.xaml.cs
new file mode 100644
index 00000000..90a70c90
--- /dev/null
+++ b/Net40/HandyControlDemo_Net40/UserControl/Controls/BadgeDemoCtl.xaml.cs
@@ -0,0 +1,10 @@
+namespace HandyControlDemo.UserControl
+{
+ public partial class BadgeDemoCtl
+ {
+ public BadgeDemoCtl()
+ {
+ InitializeComponent();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Controls/CircleProgressBarDemoCtl.xaml b/Net40/HandyControlDemo_Net40/UserControl/Controls/CircleProgressBarDemoCtl.xaml
deleted file mode 100644
index 1d89bbbc..00000000
--- a/Net40/HandyControlDemo_Net40/UserControl/Controls/CircleProgressBarDemoCtl.xaml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Controls/GifImageDemoCtl.xaml b/Net40/HandyControlDemo_Net40/UserControl/Controls/GifImageDemoCtl.xaml
index 7efbaaae..46b410b7 100644
--- a/Net40/HandyControlDemo_Net40/UserControl/Controls/GifImageDemoCtl.xaml
+++ b/Net40/HandyControlDemo_Net40/UserControl/Controls/GifImageDemoCtl.xaml
@@ -4,10 +4,10 @@
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl"
Background="{DynamicResource RegionBrush}">
-
-
+
+
-
-
+
+
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Controls/GravatarDemoCtl.xaml b/Net40/HandyControlDemo_Net40/UserControl/Controls/GravatarDemoCtl.xaml
new file mode 100644
index 00000000..5efa1fdb
--- /dev/null
+++ b/Net40/HandyControlDemo_Net40/UserControl/Controls/GravatarDemoCtl.xaml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Controls/GravatarDemoCtl.xaml.cs b/Net40/HandyControlDemo_Net40/UserControl/Controls/GravatarDemoCtl.xaml.cs
new file mode 100644
index 00000000..492bf3f0
--- /dev/null
+++ b/Net40/HandyControlDemo_Net40/UserControl/Controls/GravatarDemoCtl.xaml.cs
@@ -0,0 +1,10 @@
+namespace HandyControlDemo.UserControl
+{
+ public partial class GravatarDemoCtl
+ {
+ public GravatarDemoCtl()
+ {
+ InitializeComponent();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Controls/ProgressBarDemoCtl.xaml b/Net40/HandyControlDemo_Net40/UserControl/Controls/ProgressBarDemoCtl.xaml
new file mode 100644
index 00000000..7b2c8255
--- /dev/null
+++ b/Net40/HandyControlDemo_Net40/UserControl/Controls/ProgressBarDemoCtl.xaml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Styles/ProgressBarDemoCtl.xaml.cs b/Net40/HandyControlDemo_Net40/UserControl/Controls/ProgressBarDemoCtl.xaml.cs
similarity index 100%
rename from Net40/HandyControlDemo_Net40/UserControl/Styles/ProgressBarDemoCtl.xaml.cs
rename to Net40/HandyControlDemo_Net40/UserControl/Controls/ProgressBarDemoCtl.xaml.cs
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Main/LeftMainContent.xaml b/Net40/HandyControlDemo_Net40/UserControl/Main/LeftMainContent.xaml
index 536ce1bc..c6018ef8 100644
--- a/Net40/HandyControlDemo_Net40/UserControl/Main/LeftMainContent.xaml
+++ b/Net40/HandyControlDemo_Net40/UserControl/Main/LeftMainContent.xaml
@@ -59,7 +59,7 @@
-
+
@@ -74,17 +74,17 @@
-
+
-
+
-
+
@@ -104,12 +104,12 @@
-
+
-
+
@@ -187,12 +187,22 @@
+
+
+
+
+
+
+
+
+
+
-
+
@@ -247,7 +257,7 @@
-
+
@@ -302,14 +312,14 @@
-
+
-
+
-
+
@@ -377,7 +387,7 @@
-
+
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Main/UnderConstruction.xaml b/Net40/HandyControlDemo_Net40/UserControl/Main/UnderConstruction.xaml
new file mode 100644
index 00000000..a1af31e5
--- /dev/null
+++ b/Net40/HandyControlDemo_Net40/UserControl/Main/UnderConstruction.xaml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Main/UnderConstruction.xaml.cs b/Net40/HandyControlDemo_Net40/UserControl/Main/UnderConstruction.xaml.cs
new file mode 100644
index 00000000..7ea009d5
--- /dev/null
+++ b/Net40/HandyControlDemo_Net40/UserControl/Main/UnderConstruction.xaml.cs
@@ -0,0 +1,10 @@
+namespace HandyControlDemo.UserControl
+{
+ public partial class UnderConstruction
+ {
+ public UnderConstruction()
+ {
+ InitializeComponent();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Net40/HandyControlDemo_Net40/UserControl/Styles/NaiveComboBoxDemoCtl.xaml b/Net40/HandyControlDemo_Net40/UserControl/Styles/NativeComboBoxDemoCtl.xaml
similarity index 97%
rename from Net40/HandyControlDemo_Net40/UserControl/Styles/NaiveComboBoxDemoCtl.xaml
rename to Net40/HandyControlDemo_Net40/UserControl/Styles/NativeComboBoxDemoCtl.xaml
index 377a8d1f..074f91c2 100644
--- a/Net40/HandyControlDemo_Net40/UserControl/Styles/NaiveComboBoxDemoCtl.xaml
+++ b/Net40/HandyControlDemo_Net40/UserControl/Styles/NativeComboBoxDemoCtl.xaml
@@ -1,4 +1,4 @@
- element.SetValue(CornerRadiusProperty, value);
public static CornerRadius GetCornerRadius(DependencyObject element) => (CornerRadius)element.GetValue(CornerRadiusProperty);
+
+ public static readonly DependencyProperty CircularProperty = DependencyProperty.RegisterAttached(
+ "Circular", typeof(bool), typeof(BorderElement), new PropertyMetadata(ValueBoxes.FalseBox, OnCircularChanged));
+
+ private static void OnCircularChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ if (d is Border border)
+ {
+ if ((bool)e.NewValue)
+ {
+ var binding = new MultiBinding
+ {
+ Converter = new BorderCircularConverter()
+ };
+ binding.Bindings.Add(new Binding(FrameworkElement.ActualWidthProperty.Name) { Source = border });
+ binding.Bindings.Add(new Binding(FrameworkElement.ActualHeightProperty.Name) { Source = border });
+ border.SetBinding(Border.CornerRadiusProperty, binding);
+ }
+ else
+ {
+ BindingOperations.ClearBinding(border, FrameworkElement.MinWidthProperty);
+ BindingOperations.ClearBinding(border, FrameworkElement.MinHeightProperty);
+ BindingOperations.ClearBinding(border, Border.CornerRadiusProperty);
+ }
+ }
+ }
+
+ public static void SetCircular(DependencyObject element, bool value)
+ => element.SetValue(CircularProperty, value);
+
+ public static bool GetCircular(DependencyObject element)
+ => (bool)element.GetValue(CircularProperty);
}
}
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Controls/Attach/LinkElement.cs b/Net40/HandyControl_Net40/Controls/Attach/LinkElement.cs
index 5da5d111..f8a2099b 100644
--- a/Net40/HandyControl_Net40/Controls/Attach/LinkElement.cs
+++ b/Net40/HandyControl_Net40/Controls/Attach/LinkElement.cs
@@ -14,7 +14,7 @@ namespace HandyControl.Controls
{
if (d is UIElement element)
{
- CreateTrriger(element, (string) e.NewValue);
+ CreateTrigger(element, (string)e.NewValue);
}
}
@@ -25,9 +25,9 @@ namespace HandyControl.Controls
=> element.SetValue(CommandBindingProperty, value);
private static CommandBinding GetCommandBinding(DependencyObject element)
- => (CommandBinding) element.GetValue(CommandBindingProperty);
+ => (CommandBinding)element.GetValue(CommandBindingProperty);
- private static void CreateTrriger(UIElement element, string link)
+ private static void CreateTrigger(UIElement element, string link)
{
element.CommandBindings.Remove(GetCommandBinding(element));
element.SetCurrentValue(CommandBindingProperty, DependencyProperty.UnsetValue);
@@ -42,6 +42,6 @@ namespace HandyControl.Controls
=> element.SetValue(LinkProperty, value);
public static string GetLink(DependencyObject element)
- => (string) element.GetValue(LinkProperty);
+ => (string)element.GetValue(LinkProperty);
}
}
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Controls/Base/IGravatarGenerator.cs b/Net40/HandyControl_Net40/Controls/Base/IGravatarGenerator.cs
new file mode 100644
index 00000000..37ddca34
--- /dev/null
+++ b/Net40/HandyControl_Net40/Controls/Base/IGravatarGenerator.cs
@@ -0,0 +1,7 @@
+namespace HandyControl.Controls
+{
+ public interface IGravatarGenerator
+ {
+ object GetGravatar(string id);
+ }
+}
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Controls/Input/SearchBar.cs b/Net40/HandyControl_Net40/Controls/Input/SearchBar.cs
index 6243b3c8..6abcbf77 100644
--- a/Net40/HandyControl_Net40/Controls/Input/SearchBar.cs
+++ b/Net40/HandyControl_Net40/Controls/Input/SearchBar.cs
@@ -47,6 +47,7 @@ namespace HandyControl.Controls
_textBox = GetTemplateChild(ElementTextBox) as WatermarkTextBox;
if (_textBox != null)
{
+ _textBox.Text = Text;
SetBinding(TextProperty, new Binding(TextProperty.Name)
{
Source = _textBox,
diff --git a/Net40/HandyControl_Net40/Controls/Other/AnimationPath.cs b/Net40/HandyControl_Net40/Controls/Other/AnimationPath.cs
index ff126038..054dd802 100644
--- a/Net40/HandyControl_Net40/Controls/Other/AnimationPath.cs
+++ b/Net40/HandyControl_Net40/Controls/Other/AnimationPath.cs
@@ -5,6 +5,8 @@ using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using HandyControl.Data;
+using HandyControl.Expression.Drawing;
+using HandyControl.Tools.Extension;
namespace HandyControl.Controls
{
@@ -17,6 +19,11 @@ namespace HandyControl.Controls
///
private Storyboard _storyboard;
+ ///
+ /// 路径长度
+ ///
+ private double _pathLength;
+
///
/// 路径
///
@@ -47,8 +54,7 @@ namespace HandyControl.Controls
/// 路径长度
///
public static readonly DependencyProperty PathLengthProperty = DependencyProperty.Register(
- "PathLength", typeof(double), typeof(AnimationPath), new FrameworkPropertyMetadata(ValueBoxes.Double0Box,
- OnPropertiesChanged));
+ "PathLength", typeof(double), typeof(AnimationPath), new FrameworkPropertyMetadata(ValueBoxes.Double0Box, OnPropertiesChanged));
///
/// 路径长度
@@ -146,34 +152,47 @@ namespace HandyControl.Controls
remove => RemoveHandler(CompletedEvent, value);
}
+ ///
+ /// 更新路径
+ ///
private void UpdatePath()
{
if (!Duration.HasTimeSpan || !IsPlaying) return;
- StrokeDashOffset = PathLength;
+
+ _pathLength = PathLength > 0 ? PathLength : Data.GetTotalLength(new Size(ActualWidth, ActualHeight), StrokeThickness);
+
+ if (MathHelper.IsVerySmall(_pathLength)) return;
+
+ StrokeDashOffset = _pathLength;
StrokeDashArray = new DoubleCollection(new List
{
- PathLength,
- PathLength
+ _pathLength,
+ _pathLength
});
//定义动画
+ if (_storyboard != null)
+ {
+ _storyboard.Stop();
+ _storyboard.Completed -= Storyboard_Completed;
+ }
_storyboard = new Storyboard
{
RepeatBehavior = RepeatBehavior
};
- _storyboard.Completed += (s, e) => RaiseEvent(new RoutedEventArgs(CompletedEvent));
+ _storyboard.Completed += Storyboard_Completed;
var frames = new DoubleAnimationUsingKeyFrames();
//开始位置
var frame0 = new LinearDoubleKeyFrame
{
- Value = PathLength,
+ Value = _pathLength,
KeyTime = KeyTime.FromTimeSpan(TimeSpan.Zero)
};
//结束位置
var frame1 = new LinearDoubleKeyFrame
{
- Value = -PathLength,
+ Value = -_pathLength,
KeyTime = KeyTime.FromTimeSpan(Duration.TimeSpan)
};
frames.KeyFrames.Add(frame0);
@@ -185,5 +204,7 @@ namespace HandyControl.Controls
_storyboard.Begin();
}
+
+ private void Storyboard_Completed(object sender, EventArgs e) => RaiseEvent(new RoutedEventArgs(CompletedEvent));
}
}
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Controls/Other/Badge.cs b/Net40/HandyControl_Net40/Controls/Other/Badge.cs
new file mode 100644
index 00000000..74bd0228
--- /dev/null
+++ b/Net40/HandyControl_Net40/Controls/Other/Badge.cs
@@ -0,0 +1,64 @@
+using System.Windows;
+using System.Windows.Controls;
+using HandyControl.Data;
+
+namespace HandyControl.Controls
+{
+ ///
+ /// 标记
+ ///
+ public class Badge : ContentControl
+ {
+ public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
+ "Text", typeof(string), typeof(Badge), new PropertyMetadata(default(string)));
+
+ public string Text
+ {
+ get => (string)GetValue(TextProperty);
+ set => SetValue(TextProperty, value);
+ }
+
+ public static readonly DependencyProperty ValueProperty = DependencyProperty.Register(
+ "Value", typeof(int), typeof(Badge), new PropertyMetadata(ValueBoxes.Int0Box, OnValueChanged));
+
+ private static void OnValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ var ctl = (Badge)d;
+ var v = (int)e.NewValue;
+ ctl.Text = v <= ctl.Maximum ? v.ToString() : $"{ctl.Maximum}+";
+ }
+
+ public int Value
+ {
+ get => (int)GetValue(ValueProperty);
+ set => SetValue(ValueProperty, value);
+ }
+
+ public static readonly DependencyProperty IsDotProperty = DependencyProperty.Register(
+ "IsDot", typeof(bool), typeof(Badge), new PropertyMetadata(ValueBoxes.FalseBox));
+
+ public bool IsDot
+ {
+ get => (bool)GetValue(IsDotProperty);
+ set => SetValue(IsDotProperty, value);
+ }
+
+ public static readonly DependencyProperty MaximumProperty = DependencyProperty.Register(
+ "Maximum", typeof(int), typeof(Badge), new PropertyMetadata(ValueBoxes.Int99Box, OnValueChanged));
+
+ public int Maximum
+ {
+ get => (int)GetValue(MaximumProperty);
+ set => SetValue(MaximumProperty, value);
+ }
+
+ public static readonly DependencyProperty BadgeMarginProperty = DependencyProperty.Register(
+ "BadgeMargin", typeof(Thickness), typeof(Badge), new PropertyMetadata(default(Thickness)));
+
+ public Thickness BadgeMargin
+ {
+ get => (Thickness)GetValue(BadgeMarginProperty);
+ set => SetValue(BadgeMarginProperty, value);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Controls/Other/Dialog.cs b/Net40/HandyControl_Net40/Controls/Other/Dialog.cs
new file mode 100644
index 00000000..0b03db7d
--- /dev/null
+++ b/Net40/HandyControl_Net40/Controls/Other/Dialog.cs
@@ -0,0 +1,9 @@
+using System.Windows.Controls;
+
+namespace HandyControl.Controls
+{
+ public class Dialog : ContentControl
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Controls/Other/Gravatar.cs b/Net40/HandyControl_Net40/Controls/Other/Gravatar.cs
new file mode 100644
index 00000000..fb2a91a1
--- /dev/null
+++ b/Net40/HandyControl_Net40/Controls/Other/Gravatar.cs
@@ -0,0 +1,51 @@
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Media;
+using HandyControl.Tools;
+
+namespace HandyControl.Controls
+{
+ public class Gravatar : ContentControl
+ {
+ public static readonly DependencyProperty GeneratorProperty = DependencyProperty.Register(
+ "Generator", typeof(IGravatarGenerator), typeof(Gravatar), new PropertyMetadata(new GithubGravatarGenerator()));
+
+ public IGravatarGenerator Generator
+ {
+ get => (IGravatarGenerator)GetValue(GeneratorProperty);
+ set => SetValue(GeneratorProperty, value);
+ }
+
+ public static readonly DependencyProperty IdProperty = DependencyProperty.Register(
+ "Id", typeof(string), typeof(Gravatar), new PropertyMetadata(default(string), OnIdChanged));
+
+ private static void OnIdChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ var ctl = (Gravatar)d;
+ if (ctl.Source != null) return;
+ ctl.Content = ctl.Generator.GetGravatar((string)e.NewValue);
+ }
+
+ public string Id
+ {
+ get => (string)GetValue(IdProperty);
+ set => SetValue(IdProperty, value);
+ }
+
+
+ public static readonly DependencyProperty SourceProperty = DependencyProperty.Register(
+ "Source", typeof(ImageSource), typeof(Gravatar), new PropertyMetadata(default(ImageSource), OnSourceChanged));
+
+ private static void OnSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ var ctl = (Gravatar)d;
+ ctl.Background = new ImageBrush((ImageSource)e.NewValue);
+ }
+
+ public ImageSource Source
+ {
+ get => (ImageSource)GetValue(SourceProperty);
+ set => SetValue(SourceProperty, value);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Controls/Panel/SimplePanel.cs b/Net40/HandyControl_Net40/Controls/Panel/SimplePanel.cs
new file mode 100644
index 00000000..7f774b8b
--- /dev/null
+++ b/Net40/HandyControl_Net40/Controls/Panel/SimplePanel.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Windows;
+using System.Windows.Controls;
+
+namespace HandyControl.Controls
+{
+ ///
+ /// 用以代替Grid
+ ///
+ ///
+ /// 当不需要Grid的行、列分隔等功能时建议用此轻量级类代替
+ ///
+ public class SimplePanel : Panel
+ {
+ protected override Size MeasureOverride(Size availableSize)
+ {
+ var maxSize = new Size();
+ var children = InternalChildren;
+
+ for (int i = 0, count = children.Count; i < count; ++i)
+ {
+ var child = children[i];
+ if (child != null)
+ {
+ child.Measure(availableSize);
+ maxSize.Width = Math.Max(maxSize.Width, child.DesiredSize.Width);
+ maxSize.Height = Math.Max(maxSize.Height, child.DesiredSize.Height);
+ }
+ }
+
+ return maxSize;
+ }
+
+ protected override Size ArrangeOverride(Size arrangeSize)
+ {
+ foreach (UIElement child in InternalChildren)
+ {
+ child?.Arrange(new Rect(arrangeSize));
+ }
+
+ return arrangeSize;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Controls/Other/CircleProgressBar.cs b/Net40/HandyControl_Net40/Controls/ProgressBar/CircleProgressBar.cs
similarity index 100%
rename from Net40/HandyControl_Net40/Controls/Other/CircleProgressBar.cs
rename to Net40/HandyControl_Net40/Controls/ProgressBar/CircleProgressBar.cs
diff --git a/Net40/HandyControl_Net40/Controls/ProgressBar/WaveProgressBar.cs b/Net40/HandyControl_Net40/Controls/ProgressBar/WaveProgressBar.cs
new file mode 100644
index 00000000..92fa9742
--- /dev/null
+++ b/Net40/HandyControl_Net40/Controls/ProgressBar/WaveProgressBar.cs
@@ -0,0 +1,119 @@
+using System.Windows;
+using System.Windows.Controls.Primitives;
+using System.Windows.Media;
+using HandyControl.Data;
+using HandyControl.Expression.Drawing;
+
+namespace HandyControl.Controls
+{
+ ///
+ /// 波浪进度条
+ ///
+ [TemplatePart(Name = ElementWave, Type = typeof(FrameworkElement))]
+ [TemplatePart(Name = ElementClip, Type = typeof(FrameworkElement))]
+ public class WaveProgressBar : RangeBase
+ {
+ private const string ElementWave = "PART_Wave";
+
+ private const string ElementClip = "PART_Clip";
+
+ private FrameworkElement _waveElement;
+
+ private const double TranslateTransformMinY = -20;
+
+ private double _translateTransformYRange;
+
+ private TranslateTransform _translateTransform;
+
+ public WaveProgressBar() => Loaded += (s, e) => UpdateWave(Value);
+
+ static WaveProgressBar()
+ {
+ FocusableProperty.OverrideMetadata(typeof(WaveProgressBar),
+ new FrameworkPropertyMetadata(ValueBoxes.FalseBox));
+ MaximumProperty.OverrideMetadata(typeof(WaveProgressBar),
+ new FrameworkPropertyMetadata(ValueBoxes.Double100Box));
+ }
+
+ protected override void OnValueChanged(double oldValue, double newValue)
+ {
+ base.OnValueChanged(oldValue, newValue);
+
+ UpdateWave(newValue);
+ }
+
+ private void UpdateWave(double value)
+ {
+ if (_translateTransform == null || MathHelper.IsVerySmall(Maximum)) return;
+ var scale = 1 - value / Maximum;
+ var y = _translateTransformYRange * scale + TranslateTransformMinY;
+ _translateTransform.Y = y;
+ }
+
+ public override void OnApplyTemplate()
+ {
+ base.OnApplyTemplate();
+
+ _waveElement = GetTemplateChild(ElementWave) as FrameworkElement;
+ var clipElement = GetTemplateChild(ElementClip) as FrameworkElement;
+
+ if (_waveElement != null && clipElement != null)
+ {
+ _translateTransform = new TranslateTransform
+ {
+ Y = clipElement.Height
+ };
+ _translateTransformYRange = clipElement.Height - TranslateTransformMinY;
+ _waveElement.RenderTransform = new TransformGroup
+ {
+ Children = { _translateTransform }
+ };
+ }
+ }
+
+ public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
+ "Text", typeof(string), typeof(WaveProgressBar), new PropertyMetadata(default(string)));
+
+ public string Text
+ {
+ get => (string)GetValue(TextProperty);
+ set => SetValue(TextProperty, value);
+ }
+
+ public static readonly DependencyProperty ShowTextProperty = DependencyProperty.Register(
+ "ShowText", typeof(bool), typeof(WaveProgressBar), new PropertyMetadata(ValueBoxes.TrueBox));
+
+ public bool ShowText
+ {
+ get => (bool)GetValue(ShowTextProperty);
+ set => SetValue(ShowTextProperty, value);
+ }
+
+ public static readonly DependencyProperty WaveFillProperty = DependencyProperty.Register(
+ "WaveFill", typeof(Brush), typeof(WaveProgressBar), new PropertyMetadata(default(Brush)));
+
+ public Brush WaveFill
+ {
+ get => (Brush)GetValue(WaveFillProperty);
+ set => SetValue(WaveFillProperty, value);
+ }
+
+ public static readonly DependencyProperty WaveThicknessProperty = DependencyProperty.Register(
+ "WaveThickness", typeof(double), typeof(WaveProgressBar), new PropertyMetadata(ValueBoxes.Double0Box));
+
+ public double WaveThickness
+ {
+ get => (double)GetValue(WaveThicknessProperty);
+ set => SetValue(WaveThicknessProperty, value);
+ }
+
+ public static readonly DependencyProperty WaveStrokeProperty = DependencyProperty.Register(
+ "WaveStroke", typeof(Brush), typeof(WaveProgressBar), new PropertyMetadata(default(Brush)));
+
+ public Brush WaveStroke
+ {
+ get => (Brush)GetValue(WaveStrokeProperty);
+ set => SetValue(WaveStrokeProperty, value);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Data/ValueBoxes.cs b/Net40/HandyControl_Net40/Data/ValueBoxes.cs
index b2fb35dc..d53cba75 100644
--- a/Net40/HandyControl_Net40/Data/ValueBoxes.cs
+++ b/Net40/HandyControl_Net40/Data/ValueBoxes.cs
@@ -31,6 +31,8 @@
internal static object Int5Box = 5;
+ internal static object Int99Box = 99;
+
internal static object BooleanBox(bool value) => value ? TrueBox : FalseBox;
}
}
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/HandyControl_Net40.csproj b/Net40/HandyControl_Net40/HandyControl_Net40.csproj
index 5896f9a7..8b8c67c0 100644
--- a/Net40/HandyControl_Net40/HandyControl_Net40.csproj
+++ b/Net40/HandyControl_Net40/HandyControl_Net40.csproj
@@ -40,6 +40,7 @@
+
@@ -62,15 +63,20 @@
+
+
+
-
+
+
+
@@ -128,8 +134,12 @@
+
+
+
+
@@ -310,6 +320,14 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
@@ -338,6 +356,10 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
@@ -390,6 +412,10 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
diff --git a/Net40/HandyControl_Net40/Themes/Basic/Converters.xaml b/Net40/HandyControl_Net40/Themes/Basic/Converters.xaml
index 8a4d418f..57809fe9 100644
--- a/Net40/HandyControl_Net40/Themes/Basic/Converters.xaml
+++ b/Net40/HandyControl_Net40/Themes/Basic/Converters.xaml
@@ -15,5 +15,7 @@
+
+
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Themes/Styles/Badge.xaml b/Net40/HandyControl_Net40/Themes/Styles/Badge.xaml
new file mode 100644
index 00000000..fdc6d492
--- /dev/null
+++ b/Net40/HandyControl_Net40/Themes/Styles/Badge.xaml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Themes/Styles/Base/BadgeBaseStyle.xaml b/Net40/HandyControl_Net40/Themes/Styles/Base/BadgeBaseStyle.xaml
new file mode 100644
index 00000000..d1e7d26e
--- /dev/null
+++ b/Net40/HandyControl_Net40/Themes/Styles/Base/BadgeBaseStyle.xaml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Themes/Styles/Base/ComboBoxBaseStyle.xaml b/Net40/HandyControl_Net40/Themes/Styles/Base/ComboBoxBaseStyle.xaml
index ad9487c0..5bb899f8 100644
--- a/Net40/HandyControl_Net40/Themes/Styles/Base/ComboBoxBaseStyle.xaml
+++ b/Net40/HandyControl_Net40/Themes/Styles/Base/ComboBoxBaseStyle.xaml
@@ -41,6 +41,7 @@
-
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Themes/Styles/Base/GravatarBaseStyle.xaml b/Net40/HandyControl_Net40/Themes/Styles/Base/GravatarBaseStyle.xaml
new file mode 100644
index 00000000..342c8179
--- /dev/null
+++ b/Net40/HandyControl_Net40/Themes/Styles/Base/GravatarBaseStyle.xaml
@@ -0,0 +1,22 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Themes/Styles/Base/ProgressBarBaseStyle.xaml b/Net40/HandyControl_Net40/Themes/Styles/Base/ProgressBarBaseStyle.xaml
index df26dbfe..1619a5a2 100644
--- a/Net40/HandyControl_Net40/Themes/Styles/Base/ProgressBarBaseStyle.xaml
+++ b/Net40/HandyControl_Net40/Themes/Styles/Base/ProgressBarBaseStyle.xaml
@@ -5,6 +5,7 @@
+
@@ -70,13 +71,12 @@
+
+
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Themes/Styles/Border.xaml b/Net40/HandyControl_Net40/Themes/Styles/Border.xaml
index 4163cef3..3c14150f 100644
--- a/Net40/HandyControl_Net40/Themes/Styles/Border.xaml
+++ b/Net40/HandyControl_Net40/Themes/Styles/Border.xaml
@@ -1,5 +1,10 @@
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:controls="clr-namespace:HandyControl.Controls">
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Themes/Styles/Gravatar.xaml b/Net40/HandyControl_Net40/Themes/Styles/Gravatar.xaml
new file mode 100644
index 00000000..4384bd2d
--- /dev/null
+++ b/Net40/HandyControl_Net40/Themes/Styles/Gravatar.xaml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Net40/HandyControl_Net40/Themes/Styles/ProgressBar.xaml b/Net40/HandyControl_Net40/Themes/Styles/ProgressBar.xaml
index ce272123..117fc66b 100644
--- a/Net40/HandyControl_Net40/Themes/Styles/ProgressBar.xaml
+++ b/Net40/HandyControl_Net40/Themes/Styles/ProgressBar.xaml
@@ -196,6 +196,26 @@
+
+
+
+
+
+
+
+
+
+