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 @@ +