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
- RtfToXamlReader.cs
- __Filters.cs
- TimelineClockCollection.cs
- ContextBase.cs
- EqualityArray.cs
- PageCodeDomTreeGenerator.cs
- TextAction.cs
- XmlNotation.cs
- FontStretchConverter.cs
- MultipleCopiesCollection.cs
- ConnectionPoint.cs
- TextCharacters.cs
- ContentTextAutomationPeer.cs
- ResourceType.cs
- SmiTypedGetterSetter.cs
- DataPagerFieldCommandEventArgs.cs
- UIElementParaClient.cs
- CopyCodeAction.cs
- LineGeometry.cs
- List.cs
- DataRecordInternal.cs
- RepeaterItemEventArgs.cs
- BuildDependencySet.cs
- ConfigurationManagerInternalFactory.cs
- CreateBookmarkScope.cs
- CreateUserWizardStep.cs
- MulticastNotSupportedException.cs
- FamilyTypefaceCollection.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- Repeater.cs
- DbLambda.cs
- Missing.cs
- Mapping.cs
- TypeListConverter.cs
- BufferBuilder.cs
- WindowProviderWrapper.cs
- IgnoreDataMemberAttribute.cs
- BlurEffect.cs
- ListViewUpdatedEventArgs.cs
- OdbcUtils.cs
- NativeMethods.cs
- DependencyObjectPropertyDescriptor.cs
- SplitterEvent.cs
- DataGridViewRowCancelEventArgs.cs
- Parser.cs
- MatrixIndependentAnimationStorage.cs
- ColumnHeaderConverter.cs
- SectionInput.cs
- EntityException.cs
- TextSearch.cs
- Image.cs
- altserialization.cs
- Size3DValueSerializer.cs
- SymmetricSecurityProtocolFactory.cs
- DataFormats.cs
- ThemeDictionaryExtension.cs
- SkipStoryboardToFill.cs
- GroupByExpressionRewriter.cs
- DbException.cs
- RelationshipNavigation.cs
- TextEditorSpelling.cs
- ColorBuilder.cs
- EventHandlersStore.cs
- EntityCommandExecutionException.cs
- DataServiceQuery.cs
- HostExecutionContextManager.cs
- LockedAssemblyCache.cs
- ColumnWidthChangedEvent.cs
- EventMappingSettings.cs
- HTMLTagNameToTypeMapper.cs
- Baml2006ReaderSettings.cs
- DeferredSelectedIndexReference.cs
- HitTestDrawingContextWalker.cs
- BuildProvider.cs
- Parsers.cs
- SaveFileDialog.cs
- HttpCacheVary.cs
- SettingsProperty.cs
- RecordsAffectedEventArgs.cs
- DataGridViewControlCollection.cs
- HostingEnvironment.cs
- Activity.cs
- FacetValues.cs
- HotSpotCollectionEditor.cs
- InputReportEventArgs.cs
- RewritingSimplifier.cs
- ImmutableAssemblyCacheEntry.cs
- XsdBuilder.cs
- DataGridViewButtonCell.cs
- SystemThemeKey.cs
- ComponentEditorForm.cs
- PageContent.cs
- DesignerAttribute.cs
- IntersectQueryOperator.cs
- PartDesigner.cs
- ConfigurationManager.cs
- LayoutManager.cs
- DataGridViewCellStyleConverter.cs
- ClonableStack.cs
- ManualResetEvent.cs