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
- SecureStringHasher.cs
- AppSettingsExpressionEditor.cs
- DataDesignUtil.cs
- CodeExpressionCollection.cs
- WebPartDisplayModeCollection.cs
- XmlSchemaGroupRef.cs
- TextEditorDragDrop.cs
- TerminateDesigner.cs
- SafeLibraryHandle.cs
- Baml2006KnownTypes.cs
- Vars.cs
- WebPartCollection.cs
- translator.cs
- DialogResultConverter.cs
- DBBindings.cs
- TerminatorSinks.cs
- SharedUtils.cs
- Vector3dCollection.cs
- ToolStripComboBox.cs
- DefinitionBase.cs
- BevelBitmapEffect.cs
- RequestCache.cs
- ProxyHwnd.cs
- SmiMetaDataProperty.cs
- DataException.cs
- basevalidator.cs
- CorrelationToken.cs
- EditorPartChrome.cs
- StrongNameIdentityPermission.cs
- SqlDataSourceConfigureSortForm.cs
- PointUtil.cs
- ScriptResourceAttribute.cs
- SamlAssertion.cs
- ThicknessKeyFrameCollection.cs
- Int32Storage.cs
- HtmlInputPassword.cs
- ProviderUtil.cs
- Predicate.cs
- RegexFCD.cs
- FlowDocumentPageViewerAutomationPeer.cs
- UnsafeNativeMethodsMilCoreApi.cs
- ClientFactory.cs
- DecimalKeyFrameCollection.cs
- BridgeDataRecord.cs
- AssociationTypeEmitter.cs
- PlanCompilerUtil.cs
- XmlSchemaInclude.cs
- TreeNode.cs
- PartialClassGenerationTaskInternal.cs
- PropertyDescriptor.cs
- ApplicationManager.cs
- RegisterResponseInfo.cs
- ZoomPercentageConverter.cs
- SelectionHighlightInfo.cs
- Set.cs
- SqlDataSourceConfigureSortForm.cs
- SequenceFullException.cs
- HatchBrush.cs
- ObjectStateFormatter.cs
- EmissiveMaterial.cs
- StopStoryboard.cs
- X509SecurityTokenAuthenticator.cs
- Quaternion.cs
- JoinElimination.cs
- TimeSpan.cs
- XmlEntity.cs
- AppDomainAttributes.cs
- InvalidEnumArgumentException.cs
- SettingsProperty.cs
- TransformationRules.cs
- ResourceContainer.cs
- FormatConvertedBitmap.cs
- TextEditorDragDrop.cs
- WCFModelStrings.Designer.cs
- ClickablePoint.cs
- InvokeGenerator.cs
- BamlTreeUpdater.cs
- RelOps.cs
- QilTernary.cs
- EmptyQuery.cs
- NamedElement.cs
- StateManagedCollection.cs
- DuplicateWaitObjectException.cs
- TypeElementCollection.cs
- ResourceKey.cs
- LinearQuaternionKeyFrame.cs
- InitializationEventAttribute.cs
- RadioButtonAutomationPeer.cs
- Themes.cs
- TextControl.cs
- TraceUtility.cs
- SatelliteContractVersionAttribute.cs
- TemplatePagerField.cs
- ObjectStateEntryDbDataRecord.cs
- DataBoundLiteralControl.cs
- IteratorFilter.cs
- ITextView.cs
- BitmapEncoder.cs
- UnaryNode.cs
- ImageListImageEditor.cs