Code:
/ DotNET / DotNET / 8.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
- Expressions.cs
- BindingParameterCollection.cs
- ChtmlImageAdapter.cs
- CloseCollectionAsyncResult.cs
- Substitution.cs
- DictionarySurrogate.cs
- IODescriptionAttribute.cs
- ImageSourceValueSerializer.cs
- Parallel.cs
- CodeDomLoader.cs
- Deserializer.cs
- DeclaredTypeElementCollection.cs
- PassportAuthentication.cs
- RegistryKey.cs
- CreateUserWizardStep.cs
- DetailsViewUpdateEventArgs.cs
- OrderPreservingSpoolingTask.cs
- StatusBarAutomationPeer.cs
- CodeAccessSecurityEngine.cs
- HandoffBehavior.cs
- DesignBindingValueUIHandler.cs
- WebEventTraceProvider.cs
- AddInController.cs
- WebServiceTypeData.cs
- DesignTimeVisibleAttribute.cs
- SiteMapDataSource.cs
- EmbeddedMailObjectsCollection.cs
- KeyTimeConverter.cs
- Stylesheet.cs
- ConfigurationFileMap.cs
- ZipIOFileItemStream.cs
- TreeViewEvent.cs
- WindowsImpersonationContext.cs
- XmlCodeExporter.cs
- GroupItemAutomationPeer.cs
- ComponentSerializationService.cs
- BindingWorker.cs
- TypeHelper.cs
- DecimalConverter.cs
- ILGenerator.cs
- SchemaMapping.cs
- ValueProviderWrapper.cs
- WindowsSolidBrush.cs
- LocatorBase.cs
- MouseGestureConverter.cs
- ServerValidateEventArgs.cs
- Variant.cs
- CodeArgumentReferenceExpression.cs
- PeerHopCountAttribute.cs
- ExpandedWrapper.cs
- StrokeNodeData.cs
- MatrixTransform3D.cs
- FixedFlowMap.cs
- EventDescriptor.cs
- EntityUtil.cs
- XamlSerializationHelper.cs
- SignatureDescription.cs
- PickBranchDesigner.xaml.cs
- SHA256Managed.cs
- SpnegoTokenAuthenticator.cs
- LocatorGroup.cs
- CodeParameterDeclarationExpression.cs
- TableCell.cs
- EdmSchemaError.cs
- IncrementalHitTester.cs
- AnchorEditor.cs
- EntityDescriptor.cs
- StoreConnection.cs
- Translator.cs
- WebPartZoneDesigner.cs
- Event.cs
- ReadWriteSpinLock.cs
- Camera.cs
- Propagator.Evaluator.cs
- CompiledQuery.cs
- RegisteredHiddenField.cs
- RIPEMD160.cs
- Utils.cs
- SymDocumentType.cs
- HttpConfigurationSystem.cs
- ResourceReferenceExpression.cs
- CompositeFontParser.cs
- RewritingPass.cs
- DataSpaceManager.cs
- SettingsAttributes.cs
- StringUtil.cs
- TextHidden.cs
- TouchPoint.cs
- EpmContentSerializerBase.cs
- ServicesSection.cs
- Types.cs
- DbDataRecord.cs
- TimeSpanOrInfiniteConverter.cs
- ToolTipService.cs
- ServiceDurableInstanceContextProvider.cs
- Grid.cs
- TimeSpanConverter.cs
- BrowserCapabilitiesCodeGenerator.cs
- PropertyCollection.cs
- ButtonField.cs