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
- ColorAnimationBase.cs
- CollectionBase.cs
- HandledMouseEvent.cs
- ServiceChannelFactory.cs
- BitStack.cs
- XmlElementList.cs
- QueryStringHandler.cs
- PersonalizationEntry.cs
- ItemsChangedEventArgs.cs
- DbConnectionPoolGroupProviderInfo.cs
- OraclePermission.cs
- HttpHandlerActionCollection.cs
- ClientTargetCollection.cs
- Misc.cs
- DelegateHelpers.cs
- OneToOneMappingSerializer.cs
- QilReplaceVisitor.cs
- DataGridViewTextBoxEditingControl.cs
- ByeOperationAsyncResult.cs
- QilDataSource.cs
- NullableDecimalSumAggregationOperator.cs
- MouseActionConverter.cs
- XmlNode.cs
- ReadOnlyPropertyMetadata.cs
- BitmapSizeOptions.cs
- RelationshipManager.cs
- ForceCopyBuildProvider.cs
- CodeDirectoryCompiler.cs
- DataSourceCacheDurationConverter.cs
- TextOptionsInternal.cs
- ErrorWebPart.cs
- TcpClientChannel.cs
- ToolStripHighContrastRenderer.cs
- GridViewCancelEditEventArgs.cs
- DispatcherHooks.cs
- FormViewDeletedEventArgs.cs
- TripleDESCryptoServiceProvider.cs
- SoapRpcServiceAttribute.cs
- TextRenderer.cs
- BasicHttpSecurity.cs
- ConfigsHelper.cs
- EntityUtil.cs
- DetailsViewCommandEventArgs.cs
- Errors.cs
- HTMLTagNameToTypeMapper.cs
- IResourceProvider.cs
- SqlDependencyListener.cs
- XmlSerializableReader.cs
- httpapplicationstate.cs
- MemoryFailPoint.cs
- TextContainer.cs
- DuplexChannel.cs
- Substitution.cs
- SqlLiftWhereClauses.cs
- HostedHttpRequestAsyncResult.cs
- QilTernary.cs
- KeyValueInternalCollection.cs
- ActionFrame.cs
- XhtmlCssHandler.cs
- SystemResourceHost.cs
- graph.cs
- LayoutTable.cs
- JoinQueryOperator.cs
- Activator.cs
- SqlTriggerAttribute.cs
- NamedObject.cs
- AxHost.cs
- EncodingInfo.cs
- HostProtectionException.cs
- PassportIdentity.cs
- NamespaceList.cs
- PriorityQueue.cs
- Point3DCollection.cs
- NonClientArea.cs
- GridView.cs
- DataBoundLiteralControl.cs
- LineServicesCallbacks.cs
- AsyncResult.cs
- ActivityWithResultValueSerializer.cs
- ScanQueryOperator.cs
- Control.cs
- InvalidPrinterException.cs
- LoginUtil.cs
- DigitalSignature.cs
- PowerStatus.cs
- PageCodeDomTreeGenerator.cs
- X509ChainElement.cs
- TypedOperationInfo.cs
- IHttpResponseInternal.cs
- ZipIOExtraField.cs
- InternalPolicyElement.cs
- MetadataWorkspace.cs
- BufferedOutputAsyncStream.cs
- Set.cs
- WebServiceClientProxyGenerator.cs
- ControlBuilder.cs
- ValidationRule.cs
- XmlSchemaGroup.cs
- SchemaElementLookUpTableEnumerator.cs
- SchemaLookupTable.cs