internal Point GetTargetPosition(ContentPresenter dobj,Item item) { Rectangle r = (Rectangle)dobj.ContentTemplate.FindName("itemRect", dobj); double x = (double)dobj.GetValue(Canvas.LeftProperty); double y = (double)dobj.GetValue(Canvas.TopProperty); double newx = x; double newy = y; int width = (int)r.Width; int height = (int)r.Height; if (item.State == -2) { Point pt = GetRandomPosition(dobj); newx = pt.X; newy = pt.Y; } int binHeight = (int)binRow.Height.Value; if (x < marg) newx = marg; if (x + width > Width - marg) newx = Width - marg - width; if (y < marg) newy = marg; if (y + height > Height - marg - bottomMargin) newy = Height - marg - height - bottomMargin; if (item.State == 0) { if (y < binHeight + marg) newy = binHeight + marg; } else { if (item.State !=-2) { if (y + height > binHeight - marg) newy = binHeight - marg - height; if (item.State == 1) { if (x + width > Width / 2 - marg) newx = Width / 2 - marg - width; } else { if (x < marg + Width / 2) newx = Width / 2 + marg; } } } if ((item.State == 0) && (item.probTrue >= 0)) { newx = marg + Squash(Squash(1-item.probTrue)) * (Width - width - marg * 2); } return new Point(newx, newy); }
public static bool GetIsCenter(ContentPresenter element) { return (bool)element.GetValue(IsCenterProperty); }
protected override void OnTransitionEnded(TransitionPresenter transitionElement, ContentPresenter oldContent, ContentPresenter newContent) { Storyboard oldStoryboard = (Storyboard)oldContent.GetValue(OldContentStoryboardProperty); if (oldStoryboard != null) oldStoryboard.Stop(oldContent); oldContent.ClearValue(ContentPresenter.StyleProperty); Storyboard newStoryboard = (Storyboard)newContent.GetValue(NewContentStoryboardProperty); if (newStoryboard != null) newStoryboard.Stop(newContent); newContent.ClearValue(ContentPresenter.StyleProperty); }
public static object GetRefreshTriggerBinding(ContentPresenter element) { return (object)element.GetValue(RefreshTriggerBindingProperty); }