Beispiel #1
0
        /// <summary>
        /// Edits the given value.
        /// </summary>
        /// <param name="context">Context infromation.</param>
        /// <param name="provider">Service provider.</param>
        /// <param name="value">Value to be edited.</param>
        /// <returns>An edited value.</returns>
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            if (provider != null)
            {
                var service = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

                if (service == null)
                {
                    return(value);
                }

                if (_colorUi == null)
                {
                    _colorUi = new ColorUiWrapper(this);
                }

                var xnaColor = (Color)value;

                _colorUi.Start(service, System.Drawing.Color.FromArgb(xnaColor.A, xnaColor.R, xnaColor.G, xnaColor.B));

                service.DropDownControl(_colorUi.Control);

                if ((_colorUi.Value != null))
                {
                    var rescolor = (System.Drawing.Color)_colorUi.Value;

                    value = new Color(rescolor.R, rescolor.G, rescolor.B, rescolor.A);
                }

                _colorUi.End( );
            }

            return(value);
        }
        /// <summary>
        /// Edits the given value.
        /// </summary>
        /// <param name="context">Context infromation.</param>
        /// <param name="provider">Service provider.</param>
        /// <param name="value">Value to be edited.</param>
        /// <returns>An edited value.</returns>
        public override object EditValue( ITypeDescriptorContext context, IServiceProvider provider, object value )
        {
            if( provider != null )
            {
                var service = (IWindowsFormsEditorService) provider.GetService( typeof( IWindowsFormsEditorService ) ) ;

                if( service == null )
                {
                    return value ;
                }

                if( _colorUi == null )
                {
                    _colorUi = new ColorUiWrapper( this ) ;
                }

                var xnaColor = (Color) value ;

                _colorUi.Start( service, System.Drawing.Color.FromArgb( xnaColor.A, xnaColor.R, xnaColor.G, xnaColor.B ) ) ;

                service.DropDownControl( _colorUi.Control ) ;

                if( ( _colorUi.Value != null ) )
                {
                    var rescolor = (System.Drawing.Color) _colorUi.Value ;

                    value = new Color( rescolor.R, rescolor.G, rescolor.B, rescolor.A ) ;
                }

                _colorUi.End( ) ;
            }

            return value ;
        }