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
- BitmapEffectState.cs
- SqlDependencyListener.cs
- ListView.cs
- SqlDataSourceTableQuery.cs
- SqlReorderer.cs
- ListViewGroup.cs
- MsmqMessageSerializationFormat.cs
- GridEntry.cs
- SecureStringHasher.cs
- FilePresentation.cs
- InternalConfigHost.cs
- ExpressionEditorAttribute.cs
- MaskedTextBox.cs
- Scene3D.cs
- SerializationFieldInfo.cs
- TraceContextRecord.cs
- TextServicesLoader.cs
- ISFTagAndGuidCache.cs
- DelegateSerializationHolder.cs
- ApplicationId.cs
- ZoneMembershipCondition.cs
- OleDbPermission.cs
- XmlSchemaInclude.cs
- NamedPipeHostedTransportConfiguration.cs
- PrintingPermissionAttribute.cs
- SQLChars.cs
- EventData.cs
- RuntimeVariablesExpression.cs
- CheckoutException.cs
- XNodeValidator.cs
- XamlWrappingReader.cs
- TextureBrush.cs
- StylusPointPropertyInfoDefaults.cs
- ChainOfDependencies.cs
- filewebresponse.cs
- UrlPath.cs
- BindingMemberInfo.cs
- DefaultObjectMappingItemCollection.cs
- ListenUriMode.cs
- FieldBuilder.cs
- SoapHttpTransportImporter.cs
- PathTooLongException.cs
- DefaultPropertiesToSend.cs
- SqlDataSource.cs
- DataGridViewCellValueEventArgs.cs
- PageThemeCodeDomTreeGenerator.cs
- DataRowView.cs
- _BasicClient.cs
- DiscoveryMessageSequence11.cs
- BitmapEffectInput.cs
- CoTaskMemHandle.cs
- BufferedReceiveManager.cs
- TraceData.cs
- NGCPageContentSerializerAsync.cs
- BitmapEffectInput.cs
- BrowsableAttribute.cs
- baseaxisquery.cs
- ResourceWriter.cs
- RegexGroup.cs
- Thickness.cs
- CompleteWizardStep.cs
- CodeDefaultValueExpression.cs
- Tool.cs
- XmlObjectSerializerReadContextComplexJson.cs
- Dispatcher.cs
- SafeFindHandle.cs
- DataView.cs
- WebPartDisplayModeCancelEventArgs.cs
- ConfigXmlAttribute.cs
- XmlDataImplementation.cs
- Symbol.cs
- BaseDataList.cs
- TemplateControlCodeDomTreeGenerator.cs
- UInt32Storage.cs
- Boolean.cs
- ZipIOFileItemStream.cs
- SafePEFileHandle.cs
- MailDefinition.cs
- ProcessProtocolHandler.cs
- ProxyElement.cs
- ParameterCollection.cs
- TextElementEditingBehaviorAttribute.cs
- RoleManagerEventArgs.cs
- DataGridViewSortCompareEventArgs.cs
- DataSetMappper.cs
- CodeDirectoryCompiler.cs
- AppDomainAttributes.cs
- TraceUtils.cs
- SendSecurityHeader.cs
- DataBindingList.cs
- ItemChangedEventArgs.cs
- ReadWriteSpinLock.cs
- Underline.cs
- TextBox.cs
- Speller.cs
- TabletDeviceInfo.cs
- BitmapSizeOptions.cs
- X509Certificate2.cs
- PropVariant.cs
- TraceContext.cs