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
- OrderedEnumerableRowCollection.cs
- httpstaticobjectscollection.cs
- WebProxyScriptElement.cs
- InternalPermissions.cs
- CompiledQueryCacheEntry.cs
- BindingListCollectionView.cs
- ColumnWidthChangingEvent.cs
- StackBuilderSink.cs
- Completion.cs
- DynamicActivityTypeDescriptor.cs
- PropertyDescriptor.cs
- PriorityItem.cs
- UniqueID.cs
- MimeAnyImporter.cs
- XsdValidatingReader.cs
- ListViewItemEventArgs.cs
- Walker.cs
- _TimerThread.cs
- SqlUserDefinedTypeAttribute.cs
- MenuItem.cs
- QueryActivatableWorkflowsCommand.cs
- SystemException.cs
- Grammar.cs
- ValidatorCompatibilityHelper.cs
- DBNull.cs
- GridViewSortEventArgs.cs
- MeshGeometry3D.cs
- RegexWorker.cs
- FilterFactory.cs
- TreePrinter.cs
- __FastResourceComparer.cs
- StylusPointProperties.cs
- SqlFlattener.cs
- MetadataExchangeBindings.cs
- SubMenuStyleCollection.cs
- ConfigXmlCDataSection.cs
- XXXOnTypeBuilderInstantiation.cs
- UnderstoodHeaders.cs
- Attributes.cs
- JsonReaderWriterFactory.cs
- DebuggerAttributes.cs
- TransformedBitmap.cs
- ButtonAutomationPeer.cs
- HttpValueCollection.cs
- Enum.cs
- WebControl.cs
- Wizard.cs
- SamlEvidence.cs
- Visitors.cs
- CodeArrayCreateExpression.cs
- TableCell.cs
- ContextQuery.cs
- InteropAutomationProvider.cs
- PathStreamGeometryContext.cs
- StorageEntitySetMapping.cs
- PathGeometry.cs
- NotifyCollectionChangedEventArgs.cs
- _SafeNetHandles.cs
- FormViewDeleteEventArgs.cs
- Int16.cs
- lengthconverter.cs
- CodeDelegateCreateExpression.cs
- BindingExpressionBase.cs
- DesignerSerializerAttribute.cs
- PeerCollaborationPermission.cs
- Annotation.cs
- SelectionUIService.cs
- WorkflowOperationFault.cs
- OracleConnection.cs
- DATA_BLOB.cs
- MarshalDirectiveException.cs
- WhereaboutsReader.cs
- RepeaterDesigner.cs
- RelatedView.cs
- WebBrowserNavigatingEventHandler.cs
- CheckBoxAutomationPeer.cs
- PtsPage.cs
- VideoDrawing.cs
- VariantWrapper.cs
- WorkflowLayouts.cs
- PersonalizationProviderHelper.cs
- ErrorInfoXmlDocument.cs
- BridgeDataRecord.cs
- XsdDuration.cs
- SByteConverter.cs
- SmiContext.cs
- EncryptionUtility.cs
- ReflectionPermission.cs
- SymLanguageType.cs
- PageDeviceFont.cs
- TemplateNameScope.cs
- RegexMatchCollection.cs
- ProfileSettingsCollection.cs
- KeyValueConfigurationElement.cs
- HtmlEncodedRawTextWriter.cs
- MediaSystem.cs
- HttpCookieCollection.cs
- ManifestSignedXml.cs
- ExceptionHelpers.cs
- BinaryFormatter.cs