public HandleControl(Handle handle, SubCircleControl parent, Canvas pnl, Rect bounds, BorderManager borderManager) { this.handle = handle; this.bounds = bounds; this.borderManager = borderManager; this.parent = parent; InitializeMainControls(pnl); }
private void UpdateSubCircles(double unit) { Rect subcirclebounds = bounds; subcirclebounds.Inflate(-75f * unit, -75f * unit); Rect outerSubcirclebounds = bounds; outerSubcirclebounds.Inflate(-75f * unit, -75f * unit); if (subcirclebounds != Rect.Empty) { for (int i = 0; i < subCircles.Count; i++) { SubCircleControl sc = subCircles[i]; SubCircle c = clock.SubCircles[i]; Rect r = subcirclebounds; r.Offset(-r.X - r.Width / 2f, -r.Y - r.Height / 2f); Rect outercircle = bounds; outercircle.Inflate(2f * unit, 2f * unit); Point offset = GetPointAtAngleFromCircle(bounds, outercircle, c.AnglePosition); r.Offset(offset.X, offset.Y); sc.Bounds = r; sc.Update(); } } if (outerSubcirclebounds != Rect.Empty) { for (int i = 0; i < outerSubCircles.Count; i++) { SubCircleControl sc = outerSubCircles[i]; SubCircle c = clock.OuterSubCircles[i]; Rect r = outerSubcirclebounds; r.Offset(-r.X - r.Width / 2f, -r.Y - r.Height / 2f); Rect outercircle = bounds; outercircle.Inflate(subcirclebounds.Width / 2, subcirclebounds.Height / 2); Point offset = GetPointAtAngleFromCircle(bounds, outercircle, c.AnglePosition); r.Offset(offset.X, offset.Y); sc.Bounds = r; sc.Update(); } } }