private void ClickEasingFunctionPreviewIcon(UIElement placementTarget)
        {
            this.EnsureTransitionSceneNode();
            if (this.ActiveSceneViewModel == null)
            {
                return;
            }
            this.ActiveSceneViewModel.TransitionSelectionSet.SetSelection(this.sceneNode);
            VisualStateTransitionEditor transitionEditor  = new VisualStateTransitionEditor(this.sceneNode);
            PropertyReference           propertyReference = new PropertyReference((ReferenceStep)this.sceneNode.ProjectContext.ResolveProperty(VisualStateTransitionSceneNode.GeneratedEasingFunctionProperty));
            IType type = this.sceneNode.ProjectContext.ResolveType(ProjectNeutralTypes.IEasingFunction);

            if (!this.sceneNode.ProjectContext.PlatformMetadata.IsNullType((ITypeId)type))
            {
                this.easingFunctionProperty = transitionEditor.VisualTransitionObjectSet.CreateSceneNodeProperty(propertyReference, TypeUtilities.GetAttributes(type.RuntimeType));
                this.easingFunctionProperty.PropertyReferenceChanged += new Microsoft.Expression.DesignSurface.Documents.PropertyReferenceChangedEventHandler(this.easingFunctionProperty_PropertyReferenceChanged);
            }
            this.popup = new EasingEditorPopup(this.easingFunctionProperty, this.TransitionSceneNode.ViewModel.DefaultView);
            this.TransitionSceneNode.ViewModel.Closing += new EventHandler(this.ViewModel_Closing);
            this.popup.SynchronousClosed += (EventHandler)((sender, e) =>
            {
                if (this.TransitionSceneNode.IsAttached && this.TransitionSceneNode.ViewModel != null)
                {
                    this.TransitionSceneNode.ViewModel.TransitionSelectionSet.Clear();
                }
                if (this.easingFunctionProperty != null)
                {
                    this.easingFunctionProperty.OnRemoveFromCategory();
                    this.easingFunctionProperty.PropertyReferenceChanged -= new Microsoft.Expression.DesignSurface.Documents.PropertyReferenceChangedEventHandler(this.easingFunctionProperty_PropertyReferenceChanged);
                    this.easingFunctionProperty = (SceneNodeProperty)null;
                }
                this.TransitionSceneNode.ViewModel.Closing -= new EventHandler(this.ViewModel_Closing);
                this.popup = (EasingEditorPopup)null;
            });
            this.popup.Placement       = PlacementMode.Bottom;
            this.popup.PlacementTarget = placementTarget;
            this.popup.IsOpen          = true;
        }
 public VisualTransitionObjectSet(VisualStateTransitionSceneNode sceneNode, VisualStateTransitionEditor transactionContext)
     : base(sceneNode.DesignerContext, (IPropertyInspector)transactionContext)
 {
     this.sceneNode = sceneNode;
 }