public DisplayTile(Vector2 position, float width, float height) { State = DISPLAYTILESTATE.INACTIVE; _Position = position; Width = width; Height = height; Border = new Rect(Position.X, Position.Y, Width, Height); MaxActiveDurationInMilliseconds = 15000 + Statics.Random.Next(5000); BackgroundColor = Statics.RandomColor(); }
public void Update(CanvasAnimatedUpdateEventArgs args) { switch (State) { case DISPLAYTILESTATE.FADING_IN: Opacity += 5; if (Opacity == 255) { State = DISPLAYTILESTATE.ACTIVE; } CalculateBackgroundColorStep(); break; case DISPLAYTILESTATE.ACTIVE: CurrentActiveDurationInMilliseconds += args.Timing.ElapsedTime.TotalMilliseconds; if (CurrentActiveDurationInMilliseconds > MaxActiveDurationInMilliseconds) { CurrentActiveDurationInMilliseconds = 0; State = DISPLAYTILESTATE.FADING_OUT; } CalculateBackgroundColorStep(); break; case DISPLAYTILESTATE.FADING_OUT: Opacity -= 5; if (Opacity == 0) { RecycleFeedItemData(); State = DISPLAYTILESTATE.INACTIVE; } break; case DISPLAYTILESTATE.INACTIVE: // get new feed item? if (Statics.Random.Next(10) == 0) { SetFeedItem(Statics.CanvasDevice, FeedDataSource.GetNextFeedItem()); TargetBackgroundColor = Statics.RandomColor(); State = DISPLAYTILESTATE.FADING_IN; } break; } }