diff --git a/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj b/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
index 0f5b3822..efb97896 100644
--- a/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
+++ b/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
@@ -399,6 +399,9 @@
Resources\Img\LeftMainContent\PolygonHexagon_16x.png
+
+ Resources\Img\LeftMainContent\HandyControl.png
+
Resources\Img\Dance.png
diff --git a/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj b/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj
index 0af990f9..530c4e9d 100644
--- a/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj
+++ b/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj
@@ -417,6 +417,9 @@
TextTemplatingFileGenerator
MessageToken.cs
+
+ Resources\Img\LeftMainContent\HandyControl.png
+
Resources\Img\LeftMainContent\PolygonHexagon_16x.png
diff --git a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj
index 2987971d..a2e724d7 100644
--- a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj
+++ b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj
@@ -480,6 +480,9 @@
TextTemplatingFileGenerator
MessageToken.cs
+
+ Resources\Img\LeftMainContent\HandyControl.png
+
Resources\Img\LeftMainContent\PolygonHexagon_16x.png
diff --git a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs
index 1fdfbf4a..1e09db7a 100644
--- a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs
+++ b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs
@@ -110,6 +110,8 @@
public static readonly string HoneycombPanelDemoCtl = nameof(HoneycombPanelDemoCtl);
+ public static readonly string SpriteDemoCtl = nameof(SpriteDemoCtl);
+
public static readonly string ButtonDemoCtl = nameof(ButtonDemoCtl);
public static readonly string RepeatButtonDemoCtl = nameof(RepeatButtonDemoCtl);
diff --git a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt
index efb23e47..5562e803 100644
--- a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt
+++ b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt
@@ -57,7 +57,8 @@ var controlList = new List
"MagnifierDemoCtl",
"ImageBlockDemoCtl",
"RunningBlockDemoCtl",
- "HoneycombPanelDemoCtl"
+ "HoneycombPanelDemoCtl",
+ "SpriteDemoCtl"
};
var styleList = new List
{
diff --git a/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems b/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems
index 3b28efa9..50700677 100644
--- a/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems
+++ b/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems
@@ -177,6 +177,9 @@
SideMenuDemoCtl.xaml
+
+ SpriteDemoCtl.xaml
+
StepBarDemoCtl.xaml
@@ -596,6 +599,10 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs
index 910885a1..628ef134 100644
--- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs
+++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs
@@ -1365,6 +1365,15 @@ namespace HandyControlDemo.Properties.Langs {
}
}
+ ///
+ /// 查找类似 精灵 的本地化字符串。
+ ///
+ public static string Sprite {
+ get {
+ return ResourceManager.GetString("Sprite", resourceCulture);
+ }
+ }
+
///
/// 查找类似 步骤 的本地化字符串。
///
diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx
index 92647771..a9276065 100644
--- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx
+++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx
@@ -645,4 +645,7 @@
Remove an item
+
+ Sprite
+
\ No newline at end of file
diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx
index c034998d..452d92b9 100644
--- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx
+++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx
@@ -645,4 +645,7 @@
删除项
+
+ 精灵
+
\ No newline at end of file
diff --git a/src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/HandyControl.png b/src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/HandyControl.png
new file mode 100644
index 00000000..911df219
Binary files /dev/null and b/src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/HandyControl.png differ
diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Controls/SpriteDemoCtl.xaml b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/SpriteDemoCtl.xaml
new file mode 100644
index 00000000..e023b10b
--- /dev/null
+++ b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/SpriteDemoCtl.xaml
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Controls/SpriteDemoCtl.xaml.cs b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/SpriteDemoCtl.xaml.cs
new file mode 100644
index 00000000..fa59e94e
--- /dev/null
+++ b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/SpriteDemoCtl.xaml.cs
@@ -0,0 +1,10 @@
+namespace HandyControlDemo.UserControl
+{
+ public partial class SpriteDemoCtl
+ {
+ public SpriteDemoCtl()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml b/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml
index b94ff6ec..9f3b9c51 100644
--- a/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml
+++ b/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml
@@ -330,7 +330,7 @@
-
+
@@ -445,6 +445,11 @@
+
+
+
+
+
diff --git a/src/Shared/HandyControl_Shared/Controls/Other/Sprite.cs b/src/Shared/HandyControl_Shared/Controls/Other/Sprite.cs
new file mode 100644
index 00000000..fb7340e5
--- /dev/null
+++ b/src/Shared/HandyControl_Shared/Controls/Other/Sprite.cs
@@ -0,0 +1,7 @@
+namespace HandyControl.Controls
+{
+ public class Sprite : System.Windows.Window
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/src/Shared/HandyControl_Shared/Controls/Panel/CirclePanel.cs b/src/Shared/HandyControl_Shared/Controls/Panel/CirclePanel.cs
index 1eebdf43..1ad31640 100644
--- a/src/Shared/HandyControl_Shared/Controls/Panel/CirclePanel.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Panel/CirclePanel.cs
@@ -35,18 +35,28 @@ namespace HandyControl.Controls
set => SetValue(OffsetAngleProperty, value);
}
- // ReSharper disable once RedundantAssignment
protected override Size MeasureOverride(Size availableSize)
{
if (Children.Count == 0) return new Size(Diameter, Diameter);
- availableSize = new Size(Diameter, Diameter);
+ var newSize = new Size(Diameter, Diameter);
+
+ foreach (UIElement element in Children)
+ {
+ element.Measure(newSize);
+ }
+
+ return newSize;
+ }
+
+ protected override Size ArrangeOverride(Size finalSize)
+ {
var i = 0;
var perDeg = 360.0 / Children.Count;
var radius = Diameter / 2;
+
foreach (UIElement element in Children)
{
- element.Measure(availableSize);
var centerX = element.DesiredSize.Width / 2.0;
var centerY = element.DesiredSize.Height / 2.0;
var angle = perDeg * i++ + OffsetAngle;
@@ -60,11 +70,12 @@ namespace HandyControl.Controls
var r = Math.PI * angle / 180.0;
var x = radius * Math.Cos(r);
var y = radius * Math.Sin(r);
- var rectX = x + availableSize.Width / 2 - centerX;
- var rectY = y + availableSize.Height / 2 - centerY;
+ var rectX = x + finalSize.Width / 2 - centerX;
+ var rectY = y + finalSize.Height / 2 - centerY;
element.Arrange(new Rect(rectX, rectY, element.DesiredSize.Width, element.DesiredSize.Height));
}
- return availableSize;
+
+ return finalSize;
}
}
}
\ No newline at end of file
diff --git a/src/Shared/HandyControl_Shared/Controls/Panel/HoneycombPanel.cs b/src/Shared/HandyControl_Shared/Controls/Panel/HoneycombPanel.cs
index 91982f7d..1b3c3045 100644
--- a/src/Shared/HandyControl_Shared/Controls/Panel/HoneycombPanel.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Panel/HoneycombPanel.cs
@@ -93,7 +93,7 @@ namespace HandyControl.Controls
child.Arrange(_stuffer.Move());
}
- return base.ArrangeOverride(finalSize);
+ return finalSize;
}
private class HoneycombStuffer
diff --git a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems
index a974057f..1b95259b 100644
--- a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems
+++ b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems
@@ -24,6 +24,7 @@
+