Beispiel #1
0
        protected virtual void OnTileStateChanged(TileViewItemState oldValue, TileViewItemState newValue)
        {
            this.UpdateTileStates();
            if (this.headerPart != null)
            {
                this.headerPart.TileState = newValue;
            }
            if (this.cancelTileStateChanged || this.ParentTileView == null)
            {
                if (!this.cancelTileStateChanged)
                {
                    PreviewTileStateChangedEventArgs previewTileStateChangedEventArg = new PreviewTileStateChangedEventArgs()
                    {
                        TileState   = newValue,
                        RoutedEvent = RadTileViewItem.TileStateChangedEvent,
                        Source      = this
                    };
                    this.OnTileStateChanged(previewTileStateChangedEventArg);
                }
                return;
            }
            RadRoutedEventArgs tilesStateChangedArgs = new RadRoutedEventArgs(RadTileView.PreviewTilesStateChangedEvent);

            if (!this.ParentTileView.IsPreviewTilesStateRaised)
            {
                this.ParentTileView.IsPreviewTilesStateRaised = true;
                this.ParentTileView.OnPreviewTilesStateChanged(tilesStateChangedArgs);
            }
            bool rollback = false;

            if (!tilesStateChangedArgs.Handled)
            {
                PreviewTileStateChangedEventArgs previewTileStateChangedEventArg1 = new PreviewTileStateChangedEventArgs()
                {
                    TileState   = oldValue,
                    RoutedEvent = RadTileViewItem.PreviewTileStateChangedEvent,
                    Source      = this
                };
                PreviewTileStateChangedEventArgs args = previewTileStateChangedEventArg1;
                this.OnPreviewTileStateChanged(args);
                if (args.Handled)
                {
                    rollback = true;
                }
                else
                {
                    this.OnTileStateChanged(new TileStateChangedEventArgs(RadTileViewItem.TileStateChangedEvent, this, newValue, oldValue));
                }
            }
            else
            {
                rollback = true;
            }
            if (!this.CanChangeTileState(oldValue))
            {
                rollback = true;
            }
            if (rollback)
            {
                this.ParentTileView.IsPreviewTilesStateRaised = false;
                this.cancelTileStateChanged = true;
                this.TileState = oldValue;
                this.cancelTileStateChanged = false;
                return;
            }
            if (oldValue == TileViewItemState.Maximized && this.TileState == TileViewItemState.Minimized && this.ParentTileView.MaximizedItem == this && this.ParentTileView.MaximizeMode == TileViewMaximizeMode.ZeroOrOne)
            {
                this.ParentTileView.MaximizedItem = null;
                return;
            }
            if (base.Visibility == Visibility.Visible)
            {
                this.ParentTileView.ChangeTileState(this);
            }
        }
Beispiel #2
0
 protected virtual void OnPreviewTileStateChanged(PreviewTileStateChangedEventArgs e)
 {
     this.RaiseEvent(e);
 }