Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / PanelDesigner.cs / 1 / PanelDesigner.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Windows.Forms.Design {
using System.ComponentModel;
using System.Diagnostics;
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Windows.Forms.Design.Behavior;
///
///
/// This class handles all design time behavior for the panel class. This
/// draws a visible border on the panel if it doesn't have a border so the
/// user knows where the boundaries of the panel lie.
///
internal class PanelDesigner : ScrollableControlDesigner {
public PanelDesigner() {
AutoResizeHandles = true;
}
///
///
/// This draws a nice border around our panel. We need
/// this because the panel can have no border and you can't
/// tell where it is.
///
///
protected virtual void DrawBorder(Graphics graphics) {
Panel panel = (Panel)Component; // if the panel is invisible, bail now
if(panel == null || !panel.Visible) {
return;
}
Pen pen = BorderPen;
Rectangle rc = Control.ClientRectangle;
rc.Width --;
rc.Height--;
graphics.DrawRectangle(pen, rc);
pen.Dispose();
}
///
///
/// Overrides our base class. Here we check to see if there
/// is no border on the panel. If not, we draw one so that
/// the panel shape is visible at design time.
///
protected override void OnPaintAdornments(PaintEventArgs pe) {
Panel panel = (Panel)Component;
if (panel.BorderStyle == BorderStyle.None) {
DrawBorder(pe.Graphics);
}
base.OnPaintAdornments(pe);
}
///
/// Creates a Dashed-Pen of appropriate color.
///
protected Pen BorderPen {
get {
Color penColor = Control.BackColor.GetBrightness() < .5 ?
ControlPaint.Light(Control.BackColor) :
ControlPaint.Dark(Control.BackColor);
Pen pen = new Pen(penColor);
pen.DashStyle = DashStyle.Dash;
return pen;
}
}
}
}
// 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
- PlaceHolder.cs
- HistoryEventArgs.cs
- PropertyChangedEventManager.cs
- UICuesEvent.cs
- ListDesigner.cs
- WebPartActionVerb.cs
- CannotUnloadAppDomainException.cs
- MetadataArtifactLoaderCompositeFile.cs
- InstanceView.cs
- WebZoneDesigner.cs
- SmtpNegotiateAuthenticationModule.cs
- ObjectDataSourceEventArgs.cs
- DrawingContextWalker.cs
- TimelineGroup.cs
- WriteTimeStream.cs
- AccessText.cs
- TabletDeviceInfo.cs
- Compilation.cs
- SiteOfOriginPart.cs
- ConstructorBuilder.cs
- HandoffBehavior.cs
- SmtpReplyReader.cs
- ContainsRowNumberChecker.cs
- LayoutExceptionEventArgs.cs
- Win32Native.cs
- AliasGenerator.cs
- BehaviorService.cs
- SerializationAttributes.cs
- ScriptManager.cs
- UpdatePanel.cs
- XPathExpr.cs
- PathFigure.cs
- NativeDirectoryServicesQueryAPIs.cs
- FileUpload.cs
- SecurityRuntime.cs
- ValueExpressions.cs
- DataListComponentEditor.cs
- XPathDescendantIterator.cs
- NamespaceDecl.cs
- ReadOnlyCollection.cs
- BooleanConverter.cs
- PromptBuilder.cs
- XmlCharCheckingReader.cs
- SiteMapPath.cs
- QuaternionAnimationBase.cs
- ScriptControl.cs
- GridViewDeleteEventArgs.cs
- HandleInitializationContext.cs
- formatstringdialog.cs
- Timeline.cs
- DataGridSortingEventArgs.cs
- SourceElementsCollection.cs
- InheritanceContextHelper.cs
- BitmapEffectInput.cs
- XmlElementAttribute.cs
- ComponentManagerBroker.cs
- ReferenceSchema.cs
- TdsParameterSetter.cs
- ResourceSet.cs
- TileModeValidation.cs
- ObjectCache.cs
- TextTreeTextNode.cs
- EditableLabelControl.cs
- GeneratedCodeAttribute.cs
- QueueProcessor.cs
- MessageQueue.cs
- CopyEncoder.cs
- XmlCollation.cs
- RequiredFieldValidator.cs
- SmiMetaDataProperty.cs
- ListenerElementsCollection.cs
- XPathNodeHelper.cs
- TagPrefixInfo.cs
- DodSequenceMerge.cs
- QueueProcessor.cs
- ColorKeyFrameCollection.cs
- PassportAuthentication.cs
- FixedSOMPage.cs
- CLSCompliantAttribute.cs
- CodeGotoStatement.cs
- SecurityTokenSerializer.cs
- DefinitionUpdate.cs
- DependencyObjectPropertyDescriptor.cs
- NoResizeSelectionBorderGlyph.cs
- SimpleMailWebEventProvider.cs
- RealizationDrawingContextWalker.cs
- CompareValidator.cs
- NamespaceInfo.cs
- HtmlElementErrorEventArgs.cs
- PermissionRequestEvidence.cs
- SharedPersonalizationStateInfo.cs
- IISMapPath.cs
- ProgressBarHighlightConverter.cs
- EnlistmentState.cs
- ApplicationCommands.cs
- SqlConnectionHelper.cs
- MoveSizeWinEventHandler.cs
- StorageEntitySetMapping.cs
- CommandBindingCollection.cs
- StreamWriter.cs