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
- DirtyTextRange.cs
- DataServiceStreamResponse.cs
- WindowsGrip.cs
- XamlInt32CollectionSerializer.cs
- TemplateBuilder.cs
- StorageMappingItemLoader.cs
- XmlSchemaAnnotated.cs
- InkCanvasAutomationPeer.cs
- TdsParserStaticMethods.cs
- DropDownList.cs
- ConcurrentQueue.cs
- DocumentPaginator.cs
- _Connection.cs
- SqlNodeAnnotations.cs
- FileDialog_Vista_Interop.cs
- SapiRecoContext.cs
- DemultiplexingClientMessageFormatter.cs
- SimpleWebHandlerParser.cs
- MethodBody.cs
- DataColumn.cs
- ExpanderAutomationPeer.cs
- TextViewElement.cs
- XmlByteStreamWriter.cs
- FileUpload.cs
- FolderLevelBuildProvider.cs
- Pair.cs
- CommentAction.cs
- HwndSourceParameters.cs
- _NestedSingleAsyncResult.cs
- __Filters.cs
- CopyNodeSetAction.cs
- ResetableIterator.cs
- ArcSegment.cs
- ComboBoxRenderer.cs
- ConditionalDesigner.cs
- MdiWindowListItemConverter.cs
- ImageMapEventArgs.cs
- RequestCacheManager.cs
- shaperfactoryquerycacheentry.cs
- HttpCacheParams.cs
- CacheModeConverter.cs
- DataRowComparer.cs
- TiffBitmapEncoder.cs
- BasicViewGenerator.cs
- LocalValueEnumerator.cs
- EditorBrowsableAttribute.cs
- TextReturnReader.cs
- LineBreakRecord.cs
- DesignBindingPicker.cs
- VisualBrush.cs
- KoreanLunisolarCalendar.cs
- CqlGenerator.cs
- GroupBoxRenderer.cs
- FontStretch.cs
- InheritanceContextChangedEventManager.cs
- WindowsFormsHost.cs
- PrinterResolution.cs
- QueryInterceptorAttribute.cs
- Themes.cs
- Keywords.cs
- AnnotationAdorner.cs
- Console.cs
- TimeSpanMinutesConverter.cs
- MouseGestureValueSerializer.cs
- HostProtectionException.cs
- BamlLocalizableResource.cs
- MessageQueuePermissionAttribute.cs
- WebPartVerbCollection.cs
- WmlImageAdapter.cs
- AmbientLight.cs
- ExternalCalls.cs
- OleDbDataAdapter.cs
- AttachedAnnotationChangedEventArgs.cs
- SafeReversePInvokeHandle.cs
- CharacterHit.cs
- Completion.cs
- TransformPattern.cs
- Context.cs
- Screen.cs
- TemplateComponentConnector.cs
- TextChange.cs
- MulticastOption.cs
- TerminateDesigner.cs
- Control.cs
- PtsCache.cs
- MultitargetUtil.cs
- EntityDataSourceStatementEditor.cs
- HttpHandlerActionCollection.cs
- XmlSchemaInclude.cs
- ClipboardData.cs
- CollectionViewProxy.cs
- DesignerImageAdapter.cs
- SEHException.cs
- LineMetrics.cs
- DirectionalLight.cs
- sqlstateclientmanager.cs
- XmlRawWriter.cs
- VerifyHashRequest.cs
- CTreeGenerator.cs
- CompositeScriptReferenceEventArgs.cs