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
- SR.cs
- XmlSerializerVersionAttribute.cs
- KeyValuePairs.cs
- ReadOnlyMetadataCollection.cs
- DataGridViewIntLinkedList.cs
- FixedLineResult.cs
- GeometryGroup.cs
- ColorInterpolationModeValidation.cs
- DesignTimeVisibleAttribute.cs
- FtpWebRequest.cs
- DataViewManager.cs
- OracleDataAdapter.cs
- FontFamilyValueSerializer.cs
- TrackingStringDictionary.cs
- EncodingTable.cs
- LineSegment.cs
- DirectoryLocalQuery.cs
- SubclassTypeValidator.cs
- DataPagerFieldItem.cs
- ProcessHostFactoryHelper.cs
- PackageRelationshipCollection.cs
- TemplatePropertyEntry.cs
- SmtpAuthenticationManager.cs
- EllipseGeometry.cs
- SafeNativeMethods.cs
- CatalogPartDesigner.cs
- ColumnResult.cs
- MobileResource.cs
- EventRecord.cs
- LinqDataSource.cs
- VectorKeyFrameCollection.cs
- AnnotationResource.cs
- NumericUpDownAcceleration.cs
- BitStack.cs
- PrincipalPermission.cs
- EtwTrace.cs
- ToggleButton.cs
- PerspectiveCamera.cs
- Screen.cs
- ByteAnimation.cs
- NullableFloatMinMaxAggregationOperator.cs
- FontEmbeddingManager.cs
- SqlTriggerContext.cs
- EmptyQuery.cs
- FlowDocumentPaginator.cs
- CodeLinePragma.cs
- ConfigurationValidatorBase.cs
- RouteUrlExpressionBuilder.cs
- CngUIPolicy.cs
- PathHelper.cs
- ACL.cs
- Exceptions.cs
- RegexMatch.cs
- DocumentCollection.cs
- DataBoundControlAdapter.cs
- ContentPresenter.cs
- InternalRelationshipCollection.cs
- RewritingValidator.cs
- DesignerDataSourceView.cs
- JournalEntryStack.cs
- TextFormatterHost.cs
- TypographyProperties.cs
- XmlReturnReader.cs
- RootBrowserWindowProxy.cs
- BaseDataList.cs
- SimpleExpression.cs
- SqlDataSourceConfigureFilterForm.cs
- RotationValidation.cs
- ContractCodeDomInfo.cs
- WebPartMovingEventArgs.cs
- KeyGestureConverter.cs
- TransformPattern.cs
- ConfigurationPermission.cs
- ProcessHostFactoryHelper.cs
- ToolStripComboBox.cs
- SemanticAnalyzer.cs
- SystemInfo.cs
- ManipulationDelta.cs
- _emptywebproxy.cs
- StylusPointPropertyInfo.cs
- InputProcessorProfiles.cs
- XmlCodeExporter.cs
- OperationContextScope.cs
- FusionWrap.cs
- ConfigurationCollectionAttribute.cs
- WebPartMenu.cs
- URLIdentityPermission.cs
- InputBinder.cs
- ScriptHandlerFactory.cs
- Registry.cs
- MatrixAnimationBase.cs
- Win32PrintDialog.cs
- NestPullup.cs
- SynchronizationContext.cs
- DefaultDialogButtons.cs
- TrimSurroundingWhitespaceAttribute.cs
- TypeFieldSchema.cs
- FontFamilyIdentifier.cs
- PopOutPanel.cs
- LambdaCompiler.Expressions.cs