Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ButtonInternal / CheckableControlBaseAdapter.cs / 1305376 / CheckableControlBaseAdapter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms.ButtonInternal {
using System;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;
using System.Windows.Forms;
///
/// Common class for RadioButtonBaseAdapter and CheckBoxBaseAdapter
///
internal abstract class CheckableControlBaseAdapter : ButtonBaseAdapter {
private const int standardCheckSize = 13;
private ButtonBaseAdapter buttonAdapter;
internal CheckableControlBaseAdapter(ButtonBase control) : base(control) {}
protected ButtonBaseAdapter ButtonAdapter {
get {
if (buttonAdapter == null) {
buttonAdapter = CreateButtonAdapter();
}
return buttonAdapter;
}
}
internal override Size GetPreferredSizeCore(Size proposedSize) {
if (Appearance == Appearance.Button) {
return ButtonAdapter.GetPreferredSizeCore(proposedSize);
}
using (Graphics measurementGraphics = WindowsFormsUtils.CreateMeasurementGraphics()) {
using (PaintEventArgs pe = new PaintEventArgs(measurementGraphics, new Rectangle())) {
LayoutOptions options = Layout(pe);
return options.GetPreferredSizeCore(proposedSize);
}
}
}
protected abstract ButtonBaseAdapter CreateButtonAdapter();
private Appearance Appearance {
get {
CheckBox checkBox = Control as CheckBox;
if(checkBox != null) {
return checkBox.Appearance;
}
RadioButton radioButton = Control as RadioButton;
if(radioButton != null) {
return radioButton.Appearance;
}
Debug.Fail("Unexpected control type '" + Control.GetType().FullName + "'");
return Appearance.Normal;
}
}
internal override LayoutOptions CommonLayout() {
LayoutOptions layout = base.CommonLayout();
layout.growBorderBy1PxWhenDefault = false;
layout.borderSize = 0;
layout.paddingSize = 0;
layout.maxFocus = false;
layout.focusOddEvenFixup = true;
layout.checkSize = standardCheckSize;
return layout;
}
internal static float GetDpiScaleRatio(Graphics g) {
if (g == null)
return 1.0F;
return g.DpiX / 96;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ByteAnimationUsingKeyFrames.cs
- ParseElement.cs
- XmlEncodedRawTextWriter.cs
- TableRowCollection.cs
- DataBoundControl.cs
- SecurityPolicySection.cs
- ValidationErrorCollection.cs
- followingquery.cs
- EmbossBitmapEffect.cs
- PanelDesigner.cs
- WebScriptMetadataMessageEncoderFactory.cs
- VectorCollection.cs
- AsyncOperationLifetimeManager.cs
- URLAttribute.cs
- QueryAccessibilityHelpEvent.cs
- ComponentResourceManager.cs
- TcpClientCredentialType.cs
- TripleDES.cs
- Model3DCollection.cs
- SingleStorage.cs
- FileChangesMonitor.cs
- LongCountAggregationOperator.cs
- PropertyOverridesTypeEditor.cs
- WebServiceTypeData.cs
- EnumerableRowCollectionExtensions.cs
- PriorityQueue.cs
- ContentPropertyAttribute.cs
- RequestCacheEntry.cs
- FixedSOMTextRun.cs
- ScrollBar.cs
- LogAppendAsyncResult.cs
- ValueTypeFixupInfo.cs
- EntityDesignerDataSourceView.cs
- ImmComposition.cs
- oledbmetadatacolumnnames.cs
- TranslateTransform3D.cs
- CopyNodeSetAction.cs
- Canonicalizers.cs
- recordstatescratchpad.cs
- WSMessageEncoding.cs
- unitconverter.cs
- PersonalizableAttribute.cs
- NotifyInputEventArgs.cs
- OpenTypeCommon.cs
- SpecularMaterial.cs
- Soap.cs
- TargetConverter.cs
- SQLByte.cs
- NullRuntimeConfig.cs
- ZoneLinkButton.cs
- SafeFileMapViewHandle.cs
- ReferentialConstraintRoleElement.cs
- EmptyCollection.cs
- UnsafeNativeMethodsTablet.cs
- TextElementEnumerator.cs
- Clause.cs
- ListView.cs
- WinEventWrap.cs
- RegexWorker.cs
- DiscreteKeyFrames.cs
- xml.cs
- UnsafePeerToPeerMethods.cs
- OleServicesContext.cs
- EventEntry.cs
- TableRowGroupCollection.cs
- MutexSecurity.cs
- ToolStripItemClickedEventArgs.cs
- SafeReversePInvokeHandle.cs
- TableLayoutSettingsTypeConverter.cs
- XMLSyntaxException.cs
- PropertyToken.cs
- MessageHeaderException.cs
- TypeForwardedToAttribute.cs
- BufferedWebEventProvider.cs
- OutKeywords.cs
- XhtmlBasicFormAdapter.cs
- RegexGroupCollection.cs
- SafeArrayRankMismatchException.cs
- TimeSpan.cs
- FakeModelPropertyImpl.cs
- ServiceConfigurationTraceRecord.cs
- TemplateContent.cs
- ToolStripHighContrastRenderer.cs
- AnnotationStore.cs
- parserscommon.cs
- XmlEntityReference.cs
- HMACSHA1.cs
- EditorAttribute.cs
- XhtmlConformanceSection.cs
- ApplicationInfo.cs
- OleDbConnectionFactory.cs
- MessageBox.cs
- CommonServiceBehaviorElement.cs
- LocalValueEnumerator.cs
- RedirectionProxy.cs
- TypeLibConverter.cs
- UserControl.cs
- TextBoxBaseDesigner.cs
- DetailsView.cs
- XmlSchemaCollection.cs