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
- PaperSource.cs
- SBCSCodePageEncoding.cs
- ConstraintManager.cs
- WindowsScrollBarBits.cs
- StorageBasedPackageProperties.cs
- XmlBoundElement.cs
- FileNotFoundException.cs
- FormViewModeEventArgs.cs
- ExpressionWriter.cs
- DependencyPropertyAttribute.cs
- DataGridViewCheckBoxCell.cs
- StringValueSerializer.cs
- Hashtable.cs
- FileDetails.cs
- IOException.cs
- TextBreakpoint.cs
- SqlBulkCopyColumnMapping.cs
- IssuedTokenServiceCredential.cs
- XmlQueryType.cs
- BevelBitmapEffect.cs
- UrlPath.cs
- BitmapFrameEncode.cs
- SerialReceived.cs
- SafeNativeMethods.cs
- SoapCodeExporter.cs
- SecureEnvironment.cs
- DataGridViewRowPrePaintEventArgs.cs
- BinaryFormatterWriter.cs
- XmlQualifiedName.cs
- TextTreePropertyUndoUnit.cs
- WmlFormAdapter.cs
- WriteableBitmap.cs
- XhtmlConformanceSection.cs
- QueryTaskGroupState.cs
- ErrorInfoXmlDocument.cs
- WriteTimeStream.cs
- XmlSchemaGroup.cs
- Executor.cs
- TCPClient.cs
- DelegatingTypeDescriptionProvider.cs
- InteropTrackingRecord.cs
- RelationshipEnd.cs
- RangeContentEnumerator.cs
- ValidatorCompatibilityHelper.cs
- SafeHandles.cs
- WorkflowTraceTransfer.cs
- _LazyAsyncResult.cs
- DataListItemEventArgs.cs
- EditorZoneBase.cs
- StrongNameKeyPair.cs
- NullableBoolConverter.cs
- NativeRightsManagementAPIsStructures.cs
- InvokeBase.cs
- OutOfMemoryException.cs
- InternalCache.cs
- CompilationPass2Task.cs
- RC2.cs
- BitVec.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- WebPartConnectionsDisconnectVerb.cs
- DashStyle.cs
- InputScopeConverter.cs
- FlowLayoutSettings.cs
- InputLangChangeEvent.cs
- Point3D.cs
- SecurityPolicySection.cs
- ProfileProvider.cs
- URLString.cs
- ValueTypeFixupInfo.cs
- CoTaskMemHandle.cs
- DataGridViewSortCompareEventArgs.cs
- VisualBrush.cs
- ToolStripSplitStackLayout.cs
- DiagnosticTraceRecords.cs
- _HTTPDateParse.cs
- StyleXamlParser.cs
- CustomSignedXml.cs
- input.cs
- StrokeCollectionDefaultValueFactory.cs
- PackWebRequestFactory.cs
- GenericEnumerator.cs
- Registry.cs
- Single.cs
- NavigationProperty.cs
- TextFormatter.cs
- SHA384.cs
- SqlCacheDependencySection.cs
- ObjectQuery_EntitySqlExtensions.cs
- ClientTarget.cs
- DocumentPageHost.cs
- LabelAutomationPeer.cs
- QualifiedCellIdBoolean.cs
- ColorPalette.cs
- RegexMatch.cs
- TransformCollection.cs
- ISCIIEncoding.cs
- ReadOnlyNameValueCollection.cs
- SelectionItemProviderWrapper.cs
- DataGridViewRowStateChangedEventArgs.cs
- CheckoutException.cs