Code:
/ FX-1434 / FX-1434 / 1.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
- webbrowsersite.cs
- CompositionTarget.cs
- WinEventQueueItem.cs
- ModuleBuilderData.cs
- QueryStringParameter.cs
- RectangleHotSpot.cs
- CustomErrorsSectionWrapper.cs
- DependencyObjectPropertyDescriptor.cs
- Span.cs
- MsdtcClusterUtils.cs
- SharedPerformanceCounter.cs
- StylusPointCollection.cs
- SwitchExpression.cs
- Rect.cs
- CodeMemberMethod.cs
- StringUtil.cs
- StatusBar.cs
- Compiler.cs
- StandardCommands.cs
- DataBinding.cs
- NegotiateStream.cs
- BrowserDefinitionCollection.cs
- ToolStripManager.cs
- KeySpline.cs
- CopyOnWriteList.cs
- MemberNameValidator.cs
- XmlDictionaryReader.cs
- Utils.cs
- DisplayNameAttribute.cs
- WebControlAdapter.cs
- HwndPanningFeedback.cs
- TextEffectCollection.cs
- MergePropertyDescriptor.cs
- Debugger.cs
- DocumentsTrace.cs
- ClearCollection.cs
- SymbolTable.cs
- XmlWhitespace.cs
- CardSpaceShim.cs
- Update.cs
- PropertyChangingEventArgs.cs
- RowSpanVector.cs
- ExceptionHandler.cs
- PackagingUtilities.cs
- EpmTargetTree.cs
- ObjectSelectorEditor.cs
- IntegerCollectionEditor.cs
- CodeGroup.cs
- SafeHandles.cs
- RoleServiceManager.cs
- WebConfigurationHostFileChange.cs
- CompilerState.cs
- RadioButton.cs
- EncoderParameter.cs
- SerializationFieldInfo.cs
- RepeaterCommandEventArgs.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- JapaneseLunisolarCalendar.cs
- AppDomainInfo.cs
- AggregateNode.cs
- CustomErrorsSection.cs
- KoreanCalendar.cs
- VarRefManager.cs
- XmlSerializationReader.cs
- RSAPKCS1KeyExchangeFormatter.cs
- FigureHelper.cs
- SystemInfo.cs
- CompilerTypeWithParams.cs
- XmlILOptimizerVisitor.cs
- linebase.cs
- SizeAnimation.cs
- StringDictionary.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- unitconverter.cs
- HttpWebResponse.cs
- PointAnimationUsingKeyFrames.cs
- ThreadSafeList.cs
- ResourceExpressionBuilder.cs
- CodeSnippetTypeMember.cs
- ComboBoxRenderer.cs
- AdRotator.cs
- TimeSpan.cs
- ModuleBuilder.cs
- ConfigurationStrings.cs
- ClientSettingsSection.cs
- CustomWebEventKey.cs
- Pkcs7Signer.cs
- PointAnimationBase.cs
- DateTimeAutomationPeer.cs
- SafeCertificateContext.cs
- ClientRuntimeConfig.cs
- RectConverter.cs
- EventArgs.cs
- ObjectContextServiceProvider.cs
- MemberMaps.cs
- HeaderUtility.cs
- DebugTrace.cs
- ToolStripContextMenu.cs
- BufferBuilder.cs
- AnnotationResource.cs