Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / Behavior / NoResizeSelectionBorderGlyph.cs / 1 / NoResizeSelectionBorderGlyph.cs
namespace System.Windows.Forms.Design.Behavior { using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Design; using System.Diagnostics; using System.Drawing; using System.Windows.Forms.Design; ////// /// The NoResizeSelectionBorderGlyph draws one side (depending on type) of a SelectionBorder. /// internal class NoResizeSelectionBorderGlyph : SelectionGlyphBase { ////// /// This constructor extends from the standard SelectionGlyphBase constructor. /// internal NoResizeSelectionBorderGlyph(Rectangle controlBounds, SelectionRules rules, SelectionBorderGlyphType type, Behavior behavior) : base(behavior) { InitializeGlyph(controlBounds, rules, type); } ////// Helper function that initializes the Glyph based on bounds, type, and bordersize. /// private void InitializeGlyph(Rectangle controlBounds, SelectionRules selRules, SelectionBorderGlyphType type) { rules = SelectionRules.None; hitTestCursor = Cursors.Default; if ((selRules & SelectionRules.Moveable) != 0) { rules = SelectionRules.Moveable; hitTestCursor = Cursors.SizeAll; } //this will return the rect representing the bounds of the glyph bounds = DesignerUtils.GetBoundsForNoResizeSelectionType(controlBounds, type); hitBounds = bounds; // The hitbounds for the border is actually a bit bigger than the glyph bounds switch (type) { case SelectionBorderGlyphType.Top: goto case SelectionBorderGlyphType.Bottom; case SelectionBorderGlyphType.Bottom: // We want to apply the SELECTIONBORDERHITAREA to the top and the bottom of the selection border glyph hitBounds.Y -= (DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE) / 2; hitBounds.Height += DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE; break; case SelectionBorderGlyphType.Left: goto case SelectionBorderGlyphType.Right; case SelectionBorderGlyphType.Right: // We want to apply the SELECTIONBORDERHITAREA to the left and the right of the selection border glyph hitBounds.X -= (DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE) / 2; hitBounds.Width += DesignerUtils.SELECTIONBORDERHITAREA - DesignerUtils.SELECTIONBORDERSIZE; break; } } ////// /// Simple painting logic for selection Glyphs. /// public override void Paint(PaintEventArgs pe) { DesignerUtils.DrawSelectionBorder(pe.Graphics, bounds); } } } // 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
- SrgsDocument.cs
- Soap11ServerProtocol.cs
- AsymmetricKeyExchangeFormatter.cs
- DataGridCell.cs
- RegexBoyerMoore.cs
- NamedPipeTransportBindingElement.cs
- ConnectionManagementElementCollection.cs
- NativeMethods.cs
- Version.cs
- DataErrorValidationRule.cs
- ListBoxItem.cs
- FieldTemplateUserControl.cs
- TypeUtils.cs
- XmlAttributes.cs
- StructuredProperty.cs
- ProcessModule.cs
- AssemblyGen.cs
- CodeDesigner.cs
- GlobalEventManager.cs
- TypeSystemHelpers.cs
- JsonStringDataContract.cs
- SmtpLoginAuthenticationModule.cs
- FormsAuthenticationUser.cs
- ParagraphVisual.cs
- Vector3DValueSerializer.cs
- TextAutomationPeer.cs
- VersionedStreamOwner.cs
- TemplatePagerField.cs
- DbgUtil.cs
- DataControlButton.cs
- Style.cs
- precedingsibling.cs
- DataColumnPropertyDescriptor.cs
- PerformanceCounterCategory.cs
- Int64.cs
- HtmlInputButton.cs
- EntityDescriptor.cs
- LineInfo.cs
- CodeBlockBuilder.cs
- StyleHelper.cs
- DiscoveryDocumentReference.cs
- Triangle.cs
- MobileListItem.cs
- DBSqlParserTableCollection.cs
- TextElementEditingBehaviorAttribute.cs
- PtsPage.cs
- ExpressionEditorAttribute.cs
- FrugalMap.cs
- SiteIdentityPermission.cs
- MobileRedirect.cs
- OutputCacheProfileCollection.cs
- EmissiveMaterial.cs
- DiscoveryOperationContextExtension.cs
- Vector3DAnimation.cs
- CacheOutputQuery.cs
- MarkupCompilePass2.cs
- CachingHintValidation.cs
- GridPattern.cs
- ContractCodeDomInfo.cs
- XPathException.cs
- ThumbAutomationPeer.cs
- BrowserCapabilitiesFactory35.cs
- WbmpConverter.cs
- IEnumerable.cs
- StylusEventArgs.cs
- ImageButton.cs
- AutomationPropertyInfo.cs
- CustomTrackingQuery.cs
- FixedFindEngine.cs
- Rotation3DAnimationBase.cs
- OrderPreservingPipeliningMergeHelper.cs
- DoubleAnimationClockResource.cs
- FileDialogCustomPlaces.cs
- XmlWrappingReader.cs
- Debugger.cs
- UnmanagedMarshal.cs
- MouseOverProperty.cs
- HtmlTableCellCollection.cs
- CounterSetInstance.cs
- DataKey.cs
- DocumentEventArgs.cs
- TileBrush.cs
- DataRowChangeEvent.cs
- SpellCheck.cs
- CellTreeNodeVisitors.cs
- ExpressionNode.cs
- WorkflowMessageEventHandler.cs
- _CacheStreams.cs
- ImpersonationContext.cs
- ListViewCommandEventArgs.cs
- ProviderCollection.cs
- HtmlTernaryTree.cs
- BindingMAnagerBase.cs
- NameValueConfigurationCollection.cs
- PersonalizationProvider.cs
- CheckBox.cs
- WindowsStartMenu.cs
- EmptyCollection.cs
- PanelContainerDesigner.cs
- HitTestParameters.cs