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
- SamlEvidence.cs
- ActivityScheduledRecord.cs
- UrlMappingsModule.cs
- WorkItem.cs
- MSAANativeProvider.cs
- X509WindowsSecurityToken.cs
- PropertiesTab.cs
- XmlSchemaImport.cs
- RequestCachingSection.cs
- PhoneCall.cs
- XmlCodeExporter.cs
- ListViewDataItem.cs
- DynamicPropertyReader.cs
- ZoneIdentityPermission.cs
- DrawItemEvent.cs
- SafeCryptContextHandle.cs
- BridgeDataRecord.cs
- WebControlAdapter.cs
- PaperSize.cs
- SoapMessage.cs
- Constants.cs
- XmlRawWriter.cs
- CatalogPartCollection.cs
- Drawing.cs
- UIPermission.cs
- _ConnectOverlappedAsyncResult.cs
- SearchForVirtualItemEventArgs.cs
- BatchWriter.cs
- VarRemapper.cs
- SafeNativeMethods.cs
- _BaseOverlappedAsyncResult.cs
- PrivateFontCollection.cs
- DataGridSortingEventArgs.cs
- AppModelKnownContentFactory.cs
- X509IssuerSerialKeyIdentifierClause.cs
- ControlAdapter.cs
- CollectionChangeEventArgs.cs
- ListViewDataItem.cs
- DateRangeEvent.cs
- Clock.cs
- Vector3DCollection.cs
- ConnectionOrientedTransportElement.cs
- SynthesizerStateChangedEventArgs.cs
- Literal.cs
- FakeModelPropertyImpl.cs
- XmlSchemaDocumentation.cs
- DirtyTextRange.cs
- Control.cs
- OperationGenerator.cs
- MatrixAnimationBase.cs
- ProfileEventArgs.cs
- HandledEventArgs.cs
- CacheAxisQuery.cs
- TextViewSelectionProcessor.cs
- SmiTypedGetterSetter.cs
- StreamAsIStream.cs
- FlowDocumentScrollViewer.cs
- EdgeProfileValidation.cs
- TemplateControlBuildProvider.cs
- ListArgumentProvider.cs
- SqlDataSource.cs
- XmlReflectionMember.cs
- InstanceStoreQueryResult.cs
- PointLightBase.cs
- CodeIterationStatement.cs
- GeneralTransform3D.cs
- MemberDescriptor.cs
- ScrollBar.cs
- CompilationRelaxations.cs
- MapPathBasedVirtualPathProvider.cs
- FixedPageProcessor.cs
- SQLInt32Storage.cs
- RegionIterator.cs
- SessionStateModule.cs
- GridSplitter.cs
- BasicCommandTreeVisitor.cs
- TogglePattern.cs
- ButtonField.cs
- BuildResult.cs
- RecommendedAsConfigurableAttribute.cs
- MetadataArtifactLoaderComposite.cs
- StylusPointDescription.cs
- QueryOpeningEnumerator.cs
- XmlSerializerVersionAttribute.cs
- PerformanceCounter.cs
- SqlAliasesReferenced.cs
- SuppressMessageAttribute.cs
- DbConnectionStringBuilder.cs
- OleDbRowUpdatedEvent.cs
- AspProxy.cs
- ILGen.cs
- DbExpressionRules.cs
- GenericAuthenticationEventArgs.cs
- MSG.cs
- Emitter.cs
- MsmqIntegrationProcessProtocolHandler.cs
- ControlPaint.cs
- CodeDomConfigurationHandler.cs
- ToolStripScrollButton.cs
- FontDialog.cs