public void ViewMissionInfo(ImageSource missionIcon, string description, Point3D position, MissionIconUserControl button, int missionId)
        {
            newPosition = position;
            newMissionIcon = missionIcon;
            newDescription = description;
            sourceButton = button;
            this.missionId = missionId;

            if (state == States.Showing || state == States.Visible)
            {
                //we need to hide before displaying data
                state = States.Hiding;
                triggerShowAfterHidden = true;
                hideStoryboard.Begin();
            }
            else
            {
                //we're already hidden so we can just update the data and show
                UpdateData(position, missionIcon, description);

                state = States.Showing;
                showStoryboard.Begin();
            }
        }
        public void HideAnimated()
        {
            if (state == States.Invisible || state == States.Hiding) return;

            sourceButton = null;

            state = States.Hiding;
            triggerShowAfterHidden = false;
            hideStoryboard.Begin();
        }