Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / ButtonInternal / CheckableControlBaseAdapter.cs / 1 / 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; } } } // 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
- BitmapImage.cs
- FilteredAttributeCollection.cs
- DataControlFieldCollection.cs
- ApplicationGesture.cs
- IisTraceWebEventProvider.cs
- Timeline.cs
- MethodSignatureGenerator.cs
- XmlUtf8RawTextWriter.cs
- StylusCollection.cs
- PropertyItemInternal.cs
- SecurityUniqueId.cs
- SettingsPropertyIsReadOnlyException.cs
- TableLayout.cs
- ProgressBarRenderer.cs
- ThreadStartException.cs
- RangeExpression.cs
- GeneratedView.cs
- ToolStripScrollButton.cs
- Base64Encoding.cs
- TableLayoutPanelDesigner.cs
- PropertySourceInfo.cs
- OptimalTextSource.cs
- TextSelectionProcessor.cs
- ClientSettings.cs
- VectorValueSerializer.cs
- Crypto.cs
- XXXOnTypeBuilderInstantiation.cs
- BindingListCollectionView.cs
- SafeCloseHandleCritical.cs
- SwitchElementsCollection.cs
- ListViewTableRow.cs
- BamlLocalizabilityResolver.cs
- InputManager.cs
- Aggregates.cs
- SQLResource.cs
- MenuTracker.cs
- XmlConvert.cs
- HandlerFactoryWrapper.cs
- NameValueFileSectionHandler.cs
- Exception.cs
- ItemContainerGenerator.cs
- TypeGeneratedEventArgs.cs
- OdbcConnectionFactory.cs
- ParameterSubsegment.cs
- RangeValueProviderWrapper.cs
- FragmentQueryProcessor.cs
- CodeGenerator.cs
- BuildProviderCollection.cs
- QuestionEventArgs.cs
- StringDictionary.cs
- SerializationInfo.cs
- Typography.cs
- MenuCommand.cs
- IUnknownConstantAttribute.cs
- ReflectionTypeLoadException.cs
- MissingFieldException.cs
- ExpressionList.cs
- MembershipUser.cs
- ConfigXmlComment.cs
- PeerInputChannel.cs
- Control.cs
- TextPointer.cs
- CrossAppDomainChannel.cs
- UpdateProgress.cs
- NameTable.cs
- BindingRestrictions.cs
- XmlAttribute.cs
- GiveFeedbackEvent.cs
- ColorTranslator.cs
- XPathDocument.cs
- CompiledRegexRunnerFactory.cs
- ConfigErrorGlyph.cs
- Soap11ServerProtocol.cs
- RawStylusSystemGestureInputReport.cs
- SrgsSubset.cs
- ColorPalette.cs
- oledbmetadatacolumnnames.cs
- ConsoleEntryPoint.cs
- Listener.cs
- SqlBulkCopy.cs
- MouseEventArgs.cs
- HashHelper.cs
- AdornedElementPlaceholder.cs
- OrderByLifter.cs
- RootProjectionNode.cs
- OutputCacheProviderCollection.cs
- MediaElementAutomationPeer.cs
- ExpressionBindingsDialog.cs
- ContainerParagraph.cs
- DataRecordInfo.cs
- OutputBuffer.cs
- DeviceContext.cs
- DataGridViewButtonColumn.cs
- AppSettingsExpressionEditor.cs
- WindowsListViewItemStartMenu.cs
- ConfigurationException.cs
- SettingsAttributeDictionary.cs
- EncoderReplacementFallback.cs
- RelatedImageListAttribute.cs
- basecomparevalidator.cs