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
- InputProcessorProfilesLoader.cs
- handlecollector.cs
- BitmapImage.cs
- NativeActivityFaultContext.cs
- BroadcastEventHelper.cs
- EdmItemError.cs
- ControllableStoryboardAction.cs
- UdpTransportBindingElement.cs
- FrameDimension.cs
- safex509handles.cs
- XmlSchemaImport.cs
- CodeNamespaceImport.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- LinqDataSourceEditData.cs
- MemoryMappedView.cs
- PaperSource.cs
- SecureConversationDriver.cs
- DataBindingExpressionBuilder.cs
- Wizard.cs
- FrameworkElementFactoryMarkupObject.cs
- Filter.cs
- RelatedPropertyManager.cs
- X509SecurityTokenProvider.cs
- ObjectPersistData.cs
- ToolStripSplitStackLayout.cs
- XmlExtensionFunction.cs
- AssemblyInfo.cs
- SqlConnectionPoolGroupProviderInfo.cs
- FreezableCollection.cs
- ObjRef.cs
- TransactionInterop.cs
- Win32PrintDialog.cs
- NotFiniteNumberException.cs
- SafeProcessHandle.cs
- CaseKeyBox.xaml.cs
- TypeInitializationException.cs
- ForEachDesigner.xaml.cs
- FileCodeGroup.cs
- FlowDocumentPageViewerAutomationPeer.cs
- XmlILConstructAnalyzer.cs
- Baml2006ReaderSettings.cs
- SymbolType.cs
- BaseCAMarshaler.cs
- _SingleItemRequestCache.cs
- RSACryptoServiceProvider.cs
- ItemAutomationPeer.cs
- WorkerRequest.cs
- Parameter.cs
- HwndTarget.cs
- CodeSnippetExpression.cs
- CompensationDesigner.cs
- CheckPair.cs
- SqlDataSource.cs
- CodeDomSerializerException.cs
- UmAlQuraCalendar.cs
- FileLogRecordStream.cs
- altserialization.cs
- Queue.cs
- PerspectiveCamera.cs
- ActivityExecutionFilter.cs
- Rethrow.cs
- DataView.cs
- PlainXmlWriter.cs
- CachedCompositeFamily.cs
- URLIdentityPermission.cs
- ListViewUpdateEventArgs.cs
- AttributeEmitter.cs
- MediaTimeline.cs
- XmlLanguage.cs
- QilReplaceVisitor.cs
- InternalDispatchObject.cs
- ValuePattern.cs
- Html32TextWriter.cs
- InvalidEnumArgumentException.cs
- ImageBrush.cs
- InputLanguageProfileNotifySink.cs
- StorageConditionPropertyMapping.cs
- LiteralControl.cs
- MemoryStream.cs
- GroupQuery.cs
- ConnectionInterfaceCollection.cs
- XPathNodeHelper.cs
- LifetimeServices.cs
- objectquery_tresulttype.cs
- PageContent.cs
- EventLogReader.cs
- InkPresenter.cs
- PagedDataSource.cs
- Pens.cs
- TimeIntervalCollection.cs
- DataListDesigner.cs
- Misc.cs
- XmlDataLoader.cs
- GenerateHelper.cs
- StreamResourceInfo.cs
- IriParsingElement.cs
- ListViewDataItem.cs
- LinearQuaternionKeyFrame.cs
- CommonDialog.cs
- unitconverter.cs