protected override void SetItem(int index, EigoTestDrawingObject item) { if (!(item is WordCard)) throw new ArgumentException(); base.SetItem(index, item); ((CardBox)_owner).WordCardの整列(); }
// Static members private static double CalcDistance(EigoTestDrawingObject a, EigoTestDrawingObject b) { var dx = a.BorderLeft - b.BorderLeft; var dy = a.BorderTop - b.BorderTop; return dx * dx + dy * dy; }
public void 場所の入れ換え(EigoTestDrawingObject a, EigoTestDrawingObject b, TimeSpan idouJikan) { var aa = a.Copy(); aa.IsClickable = false; aa.IsVisible = true; aa.Position = DrawingObjectPosition.Absolute; aa.Left = a.OuterLeft; aa.Top = a.OuterTop; var bb = b.Copy(); bb.IsClickable = false; bb.IsVisible = true; bb.Position = DrawingObjectPosition.Absolute; bb.Left = b.OuterLeft; bb.Top = b.OuterTop; a.IsClickable = false; a.IsVisible = false; b.IsClickable = false; b.IsVisible = false; Items.Add(aa); Items.Add(bb); var startTime = NowObject.Now; var endTime = startTime + idouJikan; DrawingPreparers.Add(new DrawingPreparer(drawingPreparer => { if (endTime <= NowObject.Now) { Items.Remove(aa); Items.Remove(bb); aa.Location = b.Location; aa.Position = b.Position; aa.IsClickable = true; aa.IsVisible = true; bb.Location = a.Location; bb.Position = a.Position; bb.IsClickable = true; bb.IsVisible = true; var indexA = a.Parent.Items.IndexOf(a); a.Parent.Items[indexA] = bb; var indexB = b.Parent.Items.IndexOf(b); b.Parent.Items[indexB] = aa; drawingPreparer.HasBeenFinished = true; return true; } float r = (NowObject.Now - startTime).Ticks / (float)(endTime - startTime).Ticks; aa.Left = a.OuterLeft + (b.OuterLeft - a.OuterLeft) * r; aa.Top = a.OuterTop + (b.OuterTop - a.OuterTop) * r; a.Width = a.Width + (b.Width - a.Width) * r; bb.Left = b.OuterLeft + (a.OuterLeft - b.OuterLeft) * r; bb.Top = b.OuterTop + (a.OuterTop - b.OuterTop) * r; b.Width = b.Width + (a.Width - b.Width) * r; return true; })); }
public double CalcDistance(EigoTestDrawingObject x) { return CalcDistance(this, x); }
public CurrentItemInfo(EigoTestDrawingObject item) { Item = item; }