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
- unsafenativemethodsother.cs
- UriTemplateEquivalenceComparer.cs
- NamespaceQuery.cs
- XmlSchemaSimpleContentExtension.cs
- ZipIOLocalFileBlock.cs
- QilChoice.cs
- MethodBuilder.cs
- WebPartMenu.cs
- Repeater.cs
- FontStretches.cs
- PrimitiveXmlSerializers.cs
- TypeContext.cs
- ItemType.cs
- ExecutionContext.cs
- CodeMethodReturnStatement.cs
- MsmqIntegrationMessagePool.cs
- TextEditor.cs
- StylusPointProperties.cs
- _HeaderInfoTable.cs
- HtmlInputCheckBox.cs
- TranslateTransform3D.cs
- ValidatedControlConverter.cs
- CellParaClient.cs
- PerformanceCounterManager.cs
- Bitmap.cs
- SubMenuStyle.cs
- AccessControlEntry.cs
- SystemDiagnosticsSection.cs
- InkCanvasSelectionAdorner.cs
- SqlBulkCopyColumnMappingCollection.cs
- ArgumentDirectionHelper.cs
- GlyphTypeface.cs
- XmlSchemaObjectTable.cs
- DataListItem.cs
- WorkflowApplicationAbortedEventArgs.cs
- AdCreatedEventArgs.cs
- SectionVisual.cs
- AttributeQuery.cs
- WorkflowServiceHost.cs
- Permission.cs
- TextBoxAutoCompleteSourceConverter.cs
- Axis.cs
- ZoneButton.cs
- Bitmap.cs
- ProcessProtocolHandler.cs
- CheckBox.cs
- XsdDuration.cs
- ExpressionEditor.cs
- ProfilePropertySettingsCollection.cs
- ControlBuilder.cs
- TypeUtil.cs
- GroupItem.cs
- WindowsGraphicsCacheManager.cs
- NavigationExpr.cs
- ProfileGroupSettings.cs
- ParentUndoUnit.cs
- KeyPullup.cs
- DocumentSequenceHighlightLayer.cs
- Comparer.cs
- DescendentsWalkerBase.cs
- DataContractSerializerOperationBehavior.cs
- XPathBuilder.cs
- PerfProviderCollection.cs
- Single.cs
- ApplicationSecurityInfo.cs
- WizardStepBase.cs
- TraceSection.cs
- ManipulationDelta.cs
- ValueQuery.cs
- CodeAttributeArgument.cs
- ApplicationProxyInternal.cs
- EntityViewGenerator.cs
- RuleSettingsCollection.cs
- PatternMatcher.cs
- CacheOutputQuery.cs
- ValidationEventArgs.cs
- SqlConnectionFactory.cs
- Deflater.cs
- RectAnimationUsingKeyFrames.cs
- QueryableDataSourceHelper.cs
- CharacterString.cs
- EmptyControlCollection.cs
- SystemWebExtensionsSectionGroup.cs
- HeaderedItemsControl.cs
- ValueUnavailableException.cs
- MonikerSyntaxException.cs
- Label.cs
- DocumentXPathNavigator.cs
- SqlCacheDependency.cs
- FlowDocumentView.cs
- DocumentGrid.cs
- QuotedPrintableStream.cs
- SkinBuilder.cs
- cookiecollection.cs
- XmlSchemaSimpleType.cs
- HtmlSelect.cs
- ValidationResult.cs
- securitymgrsite.cs
- TraceSwitch.cs
- FrameworkTextComposition.cs