Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / Behavior / SelectionBorderGlyph.cs / 1 / SelectionBorderGlyph.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 SelectionBorderGlyph draws one side (depending on type) of a SelectionBorder. /// internal class SelectionBorderGlyph : SelectionGlyphBase { ////// /// This constructor extends from the standard SelectionGlyphBase constructor. /// internal SelectionBorderGlyph(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; //this will return the rect representing the bounds of the glyph bounds = DesignerUtils.GetBoundsForSelectionType(controlBounds, type); hitBounds = bounds; // The hitbounds for the border is actually a bit bigger than the glyph bounds switch (type) { case SelectionBorderGlyphType.Top: if ((selRules & SelectionRules.TopSizeable) != 0) { hitTestCursor = Cursors.SizeNS; rules = SelectionRules.TopSizeable; } // 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.Bottom: if ((selRules & SelectionRules.BottomSizeable) != 0) { hitTestCursor = Cursors.SizeNS; rules = SelectionRules.BottomSizeable; } // 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: if ((selRules & SelectionRules.LeftSizeable) != 0) { hitTestCursor = Cursors.SizeWE; rules = SelectionRules.LeftSizeable; } // 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; case SelectionBorderGlyphType.Right: if ((selRules & SelectionRules.RightSizeable) != 0) { hitTestCursor = Cursors.SizeWE; rules = SelectionRules.RightSizeable; } // 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
- DataBinding.cs
- DataGridTableCollection.cs
- VectorValueSerializer.cs
- DbDeleteCommandTree.cs
- DrawingVisualDrawingContext.cs
- TextEditorSelection.cs
- ServicePointManager.cs
- VerificationAttribute.cs
- WindowsGraphicsWrapper.cs
- SettingsSection.cs
- ServiceSecurityAuditElement.cs
- SourceItem.cs
- UtilityExtension.cs
- PopupEventArgs.cs
- DocumentsTrace.cs
- HtmlTableCell.cs
- Expression.cs
- StorageAssociationSetMapping.cs
- SizeConverter.cs
- CalendarDateRange.cs
- Trace.cs
- ExecutionScope.cs
- TextCompositionEventArgs.cs
- StringToken.cs
- KnownTypes.cs
- HttpRuntimeSection.cs
- TemplateControl.cs
- PasswordDeriveBytes.cs
- PageParserFilter.cs
- Wizard.cs
- DocumentReferenceCollection.cs
- XmlSchemaInferenceException.cs
- SliderAutomationPeer.cs
- AppDomainAttributes.cs
- ProviderConnectionPointCollection.cs
- CacheChildrenQuery.cs
- ParallelTimeline.cs
- ScalarOps.cs
- ParseHttpDate.cs
- ListCollectionView.cs
- Pair.cs
- IndexedEnumerable.cs
- SqlError.cs
- ScrollBarRenderer.cs
- ViewStateException.cs
- PagePropertiesChangingEventArgs.cs
- DataControlLinkButton.cs
- PopupRootAutomationPeer.cs
- MatrixAnimationUsingPath.cs
- SharedPersonalizationStateInfo.cs
- FormatVersion.cs
- QuadTree.cs
- BitmapDownload.cs
- FamilyTypeface.cs
- ThemeableAttribute.cs
- PaintValueEventArgs.cs
- SymbolDocumentInfo.cs
- ConnectionStringsSection.cs
- InstanceCreationEditor.cs
- HandlerFactoryCache.cs
- MasterPageBuildProvider.cs
- PartialCachingControl.cs
- DragDropHelper.cs
- BinaryUtilClasses.cs
- TerminatorSinks.cs
- LogReservationCollection.cs
- DataGridItemCollection.cs
- recordstatescratchpad.cs
- DbModificationCommandTree.cs
- MemberDomainMap.cs
- TrustLevelCollection.cs
- BamlWriter.cs
- EdmConstants.cs
- PermissionSetTriple.cs
- MobileErrorInfo.cs
- ListBindableAttribute.cs
- TextEffectCollection.cs
- ExtensionDataObject.cs
- AttachedPropertyMethodSelector.cs
- filewebresponse.cs
- CommonGetThemePartSize.cs
- StandardCommandToolStripMenuItem.cs
- FixedNode.cs
- SqlUtil.cs
- GridViewDeletedEventArgs.cs
- ParameterSubsegment.cs
- RectangleConverter.cs
- UIElement3D.cs
- RankException.cs
- ThicknessConverter.cs
- KeyPressEvent.cs
- TextBoxLine.cs
- ElementHostAutomationPeer.cs
- XPathDocumentBuilder.cs
- HttpHeaderCollection.cs
- FlowDecisionDesigner.xaml.cs
- SQLSingleStorage.cs
- TraceLevelStore.cs
- ResponseBodyWriter.cs
- ProgressChangedEventArgs.cs