init branch
This commit is contained in:
1 parent
931aefe414
commit
86c58476c6
17 files changed
+84
-9
No files matched your search
@@ -0,0 +1,7 @@
|
||||
namespace HandyControl.Controls
|
||||
{
|
||||
public class Sprite : System.Windows.Window
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -93,7 +93,7 @@ namespace HandyControl.Controls
|
||||
child.Arrange(_stuffer.Move());
|
||||
}
|
||||
|
||||
return base.ArrangeOverride(finalSize);
|
||||
return finalSize;
|
||||
}
|
||||
|
||||
private class HoneycombStuffer
|
||||
|
||||
Reference in new issue
Block a user