Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / SplitterDesigner.cs / 1 / SplitterDesigner.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.Forms.Design.SplitterDesigner..ctor()")]
namespace System.Windows.Forms.Design {
using System.Design;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing.Drawing2D;
using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.Win32;
///
///
/// This class handles all design time behavior for the splitter class. This
/// draws a visible border on the splitter if it doesn't have a border so the
/// user knows where the boundaries of the splitter lie.
///
internal class SplitterDesigner : ControlDesigner {
public SplitterDesigner() {
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.
///
///
private void DrawBorder(Graphics graphics) {
Control ctl = Control;
Rectangle rc = ctl.ClientRectangle;
Color penColor;
// Black or white pen? Depends on the color of the control.
//
if (ctl.BackColor.GetBrightness() < .5) {
penColor = Color.White;
}
else {
penColor = Color.Black;
}
using (Pen pen = new Pen(penColor)) {
pen.DashStyle = DashStyle.Dash;
rc.Width --;
rc.Height--;
graphics.DrawRectangle(pen, rc);
}
}
///
///
/// 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) {
Splitter splitter = (Splitter)Component;
base.OnPaintAdornments(pe);
if (splitter.BorderStyle == BorderStyle.None) {
DrawBorder(pe.Graphics);
}
}
protected override void WndProc(ref Message m) {
switch (m.Msg) {
case NativeMethods.WM_WINDOWPOSCHANGED:
// Really only care about window size changing
Control source = (Control)Control;
source.Invalidate();
break;
}
base.WndProc(ref m);
}
}
}
// 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
- ResolveNameEventArgs.cs
- ProbeMatchesMessageCD1.cs
- OleDbTransaction.cs
- DbMetaDataColumnNames.cs
- IItemContainerGenerator.cs
- AccessText.cs
- DefaultObjectMappingItemCollection.cs
- SoapFormatExtensions.cs
- COM2FontConverter.cs
- WebPartZone.cs
- DataGridViewMethods.cs
- Automation.cs
- sitestring.cs
- ChtmlTextBoxAdapter.cs
- Help.cs
- ReflectPropertyDescriptor.cs
- XmlUTF8TextReader.cs
- HttpCacheVary.cs
- Attributes.cs
- CompositeDataBoundControl.cs
- InputBinding.cs
- RuleSettings.cs
- AppliesToBehaviorDecisionTable.cs
- VersionedStreamOwner.cs
- ListViewPagedDataSource.cs
- ContextMenuStrip.cs
- UndoManager.cs
- BaseDataListPage.cs
- WebReferencesBuildProvider.cs
- ProfileEventArgs.cs
- CodeDirectoryCompiler.cs
- GlobalizationAssembly.cs
- TextEffectCollection.cs
- CodeSnippetExpression.cs
- ListViewCommandEventArgs.cs
- WebPartCatalogCloseVerb.cs
- FileSystemInfo.cs
- XmlArrayItemAttribute.cs
- RectAnimationBase.cs
- localization.cs
- LexicalChunk.cs
- DrawTreeNodeEventArgs.cs
- EraserBehavior.cs
- PolicyUnit.cs
- ModelPropertyCollectionImpl.cs
- HMACMD5.cs
- RawTextInputReport.cs
- QueuePathDialog.cs
- SqlGatherProducedAliases.cs
- CssClassPropertyAttribute.cs
- NumberSubstitution.cs
- Win32.cs
- WebPartEditorApplyVerb.cs
- InvokeCompletedEventArgs.cs
- ListenerConnectionDemuxer.cs
- GridViewRowEventArgs.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- HtmlAnchor.cs
- DecoderFallbackWithFailureFlag.cs
- OdbcConnection.cs
- XD.cs
- FlowPosition.cs
- ConstraintStruct.cs
- TimeSpanFormat.cs
- _TLSstream.cs
- BitFlagsGenerator.cs
- ISAPIWorkerRequest.cs
- StringInfo.cs
- DecodeHelper.cs
- FrameSecurityDescriptor.cs
- SafeThreadHandle.cs
- ManualResetEventSlim.cs
- LinkGrep.cs
- SerializationEventsCache.cs
- Clock.cs
- PasswordBoxAutomationPeer.cs
- CLRBindingWorker.cs
- ServerValidateEventArgs.cs
- FixedSOMTextRun.cs
- QueryableDataSourceEditData.cs
- ApplicationSecurityInfo.cs
- CustomLineCap.cs
- GradientSpreadMethodValidation.cs
- SerializationInfoEnumerator.cs
- CryptoKeySecurity.cs
- SmiRequestExecutor.cs
- UnsafeNativeMethods.cs
- FullTrustAssemblyCollection.cs
- DatePicker.cs
- FixUp.cs
- ThreadLocal.cs
- InvalidDocumentContentsException.cs
- DataSourceXmlTextReader.cs
- Dictionary.cs
- BindingGroup.cs
- XsdValidatingReader.cs
- Soap12ServerProtocol.cs
- ExpressionEditorAttribute.cs
- DataTablePropertyDescriptor.cs
- Brush.cs