Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / FlatButtonAppearance.cs / 1 / FlatButtonAppearance.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Drawing; using System.Globalization; using System.ComponentModel; using System.Windows.Forms.Layout; ////// /// [TypeConverter(typeof(FlatButtonAppearanceConverter))] public class FlatButtonAppearance { private ButtonBase owner; private int borderSize = 1; private Color borderColor = Color.Empty; private Color checkedBackColor = Color.Empty; private Color mouseDownBackColor = Color.Empty; private Color mouseOverBackColor = Color.Empty; internal FlatButtonAppearance(ButtonBase owner) { this.owner = owner; } ////// /// For buttons whose FlatStyle is FlatStyle.Flat, this property specifies the size, in pixels of the border around the button. /// [ Browsable(true), ApplicableToButton(), NotifyParentProperty(true), SRCategory(SR.CatAppearance), SRDescription(SR.ButtonBorderSizeDescr), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(1), ] public int BorderSize { get { return borderSize; } set { if (value < 0) throw new ArgumentOutOfRangeException("BorderSize", value, SR.GetString(SR.InvalidLowBoundArgumentEx, "BorderSize", value.ToString(CultureInfo.CurrentCulture), (0).ToString(CultureInfo.CurrentCulture))); if (borderSize != value) { borderSize = value; if (owner != null && owner.ParentInternal != null) { LayoutTransaction.DoLayoutIf(owner.AutoSize, owner.ParentInternal, owner, PropertyNames.FlatAppearanceBorderSize); } owner.Invalidate(); } } } ////// /// For buttons whose FlatStyle is FlatStyle.Flat, this property specifies the color of the border around the button. /// [ Browsable(true), ApplicableToButton(), NotifyParentProperty(true), SRCategory(SR.CatAppearance), SRDescription(SR.ButtonBorderColorDescr), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(typeof(Color), ""), ] public Color BorderColor { get { return borderColor; } set { if (value.Equals(Color.Transparent)) { throw new NotSupportedException(SR.GetString(SR.ButtonFlatAppearanceInvalidBorderColor)); } if (borderColor != value) { borderColor = value; owner.Invalidate(); } } } ////// /// For buttons whose FlatStyle is FlatStyle.Flat, this property specifies the color of the client area /// of the button when the button state is checked and the mouse cursor is NOT within the bounds of the control. /// [ Browsable(true), NotifyParentProperty(true), SRCategory(SR.CatAppearance), SRDescription(SR.ButtonCheckedBackColorDescr), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(typeof(Color), ""), ] public Color CheckedBackColor { get { return checkedBackColor; } set { if (checkedBackColor != value) { checkedBackColor = value; owner.Invalidate(); } } } ////// /// For buttons whose FlatStyle is FlatStyle.Flat, this property specifies the color of the client area /// of the button when the mouse cursor is within the bounds of the control and the left button is pressed. /// [ Browsable(true), ApplicableToButton(), NotifyParentProperty(true), SRCategory(SR.CatAppearance), SRDescription(SR.ButtonMouseDownBackColorDescr), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(typeof(Color), ""), ] public Color MouseDownBackColor { get { return mouseDownBackColor; } set { if (mouseDownBackColor != value) { mouseDownBackColor = value; owner.Invalidate(); } } } ////// /// For buttons whose FlatStyle is FlatStyle.Flat, this property specifies the color of the client /// area of the button when the mouse cursor is within the bounds of the control. /// [ Browsable(true), ApplicableToButton(), NotifyParentProperty(true), SRCategory(SR.CatAppearance), SRDescription(SR.ButtonMouseOverBackColorDescr), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(typeof(Color), ""), ] public Color MouseOverBackColor { get { return mouseOverBackColor; } set { if (mouseOverBackColor != value) { mouseOverBackColor = value; owner.Invalidate(); } } } } internal sealed class ApplicableToButtonAttribute : Attribute { public ApplicableToButtonAttribute() { } } internal class FlatButtonAppearanceConverter : ExpandableObjectConverter { // Don't let the property grid display the full type name in the value cell public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { return ""; } return base.ConvertTo(context, culture, value, destinationType); } // Don't let the property grid display the CheckedBackColor property for Button controls public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) { if (context != null && context.Instance is Button) { Attribute[] attributes2 = new Attribute[attributes.Length + 1]; attributes.CopyTo(attributes2, 0); attributes2[attributes.Length] = new ApplicableToButtonAttribute(); attributes = attributes2; } return TypeDescriptor.GetProperties(value, attributes); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IndicFontClient.cs
- ClickablePoint.cs
- PtsPage.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- UrlAuthorizationModule.cs
- MultipleViewProviderWrapper.cs
- UInt16.cs
- MeasureItemEvent.cs
- BaseProcessor.cs
- XmlnsCompatibleWithAttribute.cs
- PageBreakRecord.cs
- XmlUtilWriter.cs
- XsdCachingReader.cs
- XmlChildEnumerator.cs
- Misc.cs
- MailBnfHelper.cs
- DeviceContexts.cs
- WebPartsSection.cs
- CompilerScope.Storage.cs
- CachedTypeface.cs
- ToolStripDropDownMenu.cs
- ContentElement.cs
- ButtonRenderer.cs
- BeginStoryboard.cs
- DoubleCollection.cs
- DataFieldCollectionEditor.cs
- TextTreeObjectNode.cs
- TypeUtil.cs
- DataTableCollection.cs
- DesignerAttribute.cs
- OutputCacheProfileCollection.cs
- HelloOperationCD1AsyncResult.cs
- DataMisalignedException.cs
- DataGridItem.cs
- MetadataArtifactLoaderFile.cs
- CommandBinding.cs
- DispatcherExceptionEventArgs.cs
- Latin1Encoding.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- SingleAnimation.cs
- BitmapMetadataEnumerator.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- BitmapEffectGeneralTransform.cs
- ResXResourceReader.cs
- SchemaCollectionCompiler.cs
- RectAnimationUsingKeyFrames.cs
- Dump.cs
- PropertyItemInternal.cs
- TraceUtils.cs
- CodeTryCatchFinallyStatement.cs
- TypedTableHandler.cs
- RoutedEvent.cs
- DataSourceSelectArguments.cs
- DataControlButton.cs
- BamlLocalizer.cs
- HttpServerProtocol.cs
- Int16Converter.cs
- RuntimeHelpers.cs
- GroupBox.cs
- TextParaClient.cs
- HttpServerVarsCollection.cs
- AutoGeneratedFieldProperties.cs
- CustomAttributeBuilder.cs
- COM2ColorConverter.cs
- mediaeventargs.cs
- ApplicationManager.cs
- TraceEventCache.cs
- CultureInfoConverter.cs
- StorageAssociationSetMapping.cs
- DoubleIndependentAnimationStorage.cs
- HandlerFactoryWrapper.cs
- HttpProxyCredentialType.cs
- basenumberconverter.cs
- FamilyMapCollection.cs
- ComplexPropertyEntry.cs
- InfoCardListRequest.cs
- TypeBuilderInstantiation.cs
- NavigateEvent.cs
- SourceItem.cs
- ErrorTableItemStyle.cs
- TraceHandler.cs
- ReaderWriterLock.cs
- BaseDataListActionList.cs
- TreeWalkHelper.cs
- TreeViewItem.cs
- Trace.cs
- ObjectContext.cs
- _NestedSingleAsyncResult.cs
- SqlClientWrapperSmiStream.cs
- XmlSignificantWhitespace.cs
- ToolboxComponentsCreatingEventArgs.cs
- DataStorage.cs
- DataGridViewRowStateChangedEventArgs.cs
- WsatServiceCertificate.cs
- CodeArrayCreateExpression.cs
- AspCompat.cs
- AutomationPropertyInfo.cs
- While.cs
- ChangeTracker.cs
- TemplateAction.cs