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
- TryCatchDesigner.xaml.cs
- ToolStripPanelRow.cs
- ComponentEditorPage.cs
- ServiceContractViewControl.Designer.cs
- TextContainerChangeEventArgs.cs
- VerificationException.cs
- TraceProvider.cs
- CatalogPartChrome.cs
- FactoryMaker.cs
- XmlWrappingReader.cs
- SingleConverter.cs
- Run.cs
- InstanceDataCollection.cs
- Encoding.cs
- DesignerActionList.cs
- ToolStripSplitButton.cs
- TypeHelpers.cs
- ComponentConverter.cs
- InvalidDocumentContentsException.cs
- DiscoveryReferences.cs
- DesignTimeData.cs
- OletxTransactionManager.cs
- LinkButton.cs
- AlternationConverter.cs
- TextUtf8RawTextWriter.cs
- XmlObjectSerializerWriteContext.cs
- EntityKeyElement.cs
- SemanticResultKey.cs
- Nodes.cs
- SwitchAttribute.cs
- ObjectAnimationBase.cs
- SuppressMergeCheckAttribute.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- OciHandle.cs
- DataGridViewDataErrorEventArgs.cs
- ChangeNode.cs
- DbXmlEnabledProviderManifest.cs
- UseLicense.cs
- SecurityPolicySection.cs
- Component.cs
- ScriptingWebServicesSectionGroup.cs
- CryptoKeySecurity.cs
- SpeechSeg.cs
- LocatorPart.cs
- DataServiceExpressionVisitor.cs
- AttributeData.cs
- ProviderSettings.cs
- ContainsRowNumberChecker.cs
- DispatchWrapper.cs
- ImageCollectionCodeDomSerializer.cs
- WsdlExporter.cs
- DoubleCollection.cs
- AccessViolationException.cs
- UnauthorizedWebPart.cs
- DataColumn.cs
- RequestStatusBarUpdateEventArgs.cs
- GPPOINT.cs
- UDPClient.cs
- ContainerUtilities.cs
- ParsedRoute.cs
- ToolBarOverflowPanel.cs
- StylusCaptureWithinProperty.cs
- RelatedImageListAttribute.cs
- ProcessModelInfo.cs
- Buffer.cs
- input.cs
- MyContact.cs
- ForEach.cs
- EventPropertyMap.cs
- BaseInfoTable.cs
- LogSwitch.cs
- NonClientArea.cs
- SqlResolver.cs
- InputMethodStateChangeEventArgs.cs
- SqlUserDefinedTypeAttribute.cs
- DataIdProcessor.cs
- MultiBinding.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- WsatEtwTraceListener.cs
- NegatedConstant.cs
- ListView.cs
- DataObjectAttribute.cs
- SimpleWorkerRequest.cs
- figurelengthconverter.cs
- WorkflowRuntime.cs
- BlobPersonalizationState.cs
- HtmlTextBoxAdapter.cs
- UndoUnit.cs
- Light.cs
- ExpressionLexer.cs
- StreamWithDictionary.cs
- PostBackOptions.cs
- UriTemplateLiteralQueryValue.cs
- AmbientLight.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- DataViewListener.cs
- PeerNearMe.cs
- FixedSOMFixedBlock.cs
- CompilerErrorCollection.cs
- SQLBytesStorage.cs