Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripProfessionalLowResolutionRenderer.cs / 1305376 / ToolStripProfessionalLowResolutionRenderer.cs
namespace System.Windows.Forms { using System; using System.Drawing; internal class ToolStripProfessionalLowResolutionRenderer : ToolStripProfessionalRenderer { public ToolStripProfessionalLowResolutionRenderer() { } internal override ToolStripRenderer RendererOverride { get { return null; } } protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e) { if( e.ToolStrip is ToolStripDropDown ) { base.OnRenderToolStripBackground(e); } } protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) { if(e.ToolStrip is MenuStrip) { return; } else if (e.ToolStrip is StatusStrip ) { return; } else if (e.ToolStrip is ToolStripDropDown) { base.OnRenderToolStripBorder(e); } else { RenderToolStripBorderInternal(e); } } private void RenderToolStripBorderInternal(ToolStripRenderEventArgs e) { Rectangle bounds = new Rectangle(Point.Empty, e.ToolStrip.Size); Graphics g = e.Graphics; // have to create a pen here because we're not allowed to modify the SystemPens. using( Pen p = new Pen(SystemColors.ButtonShadow) ) { p.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; bool oddWidth = ((bounds.Width & 0x1) == 0x1); bool oddHeight = ((bounds.Height & 0x1) == 0x1); int indent = 2; // top g.DrawLine(p, bounds.X + indent, bounds.Y, bounds.Width - 1, bounds.Y); // bottom g.DrawLine(p, bounds.X + indent, bounds.Height - 1, bounds.Width - 1, bounds.Height - 1); // left g.DrawLine(p, bounds.X, bounds.Y + indent, bounds.X, bounds.Height - 1); // right g.DrawLine(p, bounds.Width - 1, bounds.Y + indent, bounds.Width - 1, bounds.Height - 1); // connecting pixels // top left conntecting pixel - always drawn g.FillRectangle(SystemBrushes.ButtonShadow, new Rectangle(1, 1, 1, 1)); if (oddWidth) { // top right pixel g.FillRectangle(SystemBrushes.ButtonShadow, new Rectangle(bounds.Width - 2, 1, 1, 1)); } // bottom conntecting pixels - drawn only if height is odd if(oddHeight) { // bottom left g.FillRectangle(SystemBrushes.ButtonShadow, new Rectangle(1, bounds.Height - 2, 1, 1)); } // top and bottom right conntecting pixel - drawn only if height and width are odd if( oddHeight && oddWidth ) { // bottom right g.FillRectangle(SystemBrushes.ButtonShadow, new Rectangle(bounds.Width - 2, bounds.Height - 2, 1, 1)); } } } } } // 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
- RuntimeTransactionHandle.cs
- CompModSwitches.cs
- GraphicsPathIterator.cs
- EventLogEntry.cs
- FillRuleValidation.cs
- CodeNamespaceImportCollection.cs
- PropertySegmentSerializer.cs
- ReadWriteSpinLock.cs
- ColumnMapTranslator.cs
- CodeDomSerializerBase.cs
- FieldDescriptor.cs
- DateTimeConverter.cs
- RayMeshGeometry3DHitTestResult.cs
- AppDomainManager.cs
- EmptyStringExpandableObjectConverter.cs
- ExtensionQuery.cs
- ModelVisual3D.cs
- IDReferencePropertyAttribute.cs
- StyleSelector.cs
- ContentPresenter.cs
- SpecularMaterial.cs
- KeyValuePairs.cs
- EntityModelBuildProvider.cs
- HitTestResult.cs
- GAC.cs
- DataGridViewCellMouseEventArgs.cs
- CaretElement.cs
- OutputBuffer.cs
- EventRoute.cs
- QilReplaceVisitor.cs
- DependencyPropertyValueSerializer.cs
- WhileDesigner.cs
- ImageSource.cs
- AlternateView.cs
- DeclarativeExpressionConditionDeclaration.cs
- SkinBuilder.cs
- Model3DGroup.cs
- OdbcError.cs
- MetadataCache.cs
- AncestorChangedEventArgs.cs
- ContentElement.cs
- AnchoredBlock.cs
- HeaderElement.cs
- EntityDataSourceChangedEventArgs.cs
- SqlDataSourceCommandEventArgs.cs
- JsonDataContract.cs
- InheritanceContextHelper.cs
- GlobalEventManager.cs
- CustomActivityDesigner.cs
- SqlFunctionAttribute.cs
- HttpWebRequestElement.cs
- Types.cs
- OracleDateTime.cs
- MessagePropertyDescription.cs
- TaskFactory.cs
- PackageDigitalSignatureManager.cs
- RegexRunner.cs
- EdmComplexTypeAttribute.cs
- ThrowHelper.cs
- RemoteArgument.cs
- NetMsmqBinding.cs
- LayoutEditorPart.cs
- OpCellTreeNode.cs
- MemberRestriction.cs
- GACIdentityPermission.cs
- DataServiceQueryOfT.cs
- FontDifferentiator.cs
- SqlNamer.cs
- IndexObject.cs
- TraceLevelStore.cs
- EventRecordWrittenEventArgs.cs
- UnsafeNativeMethods.cs
- VariableQuery.cs
- BlobPersonalizationState.cs
- UInt16Converter.cs
- WindowsIPAddress.cs
- Transform3D.cs
- SyndicationDeserializer.cs
- FontStyle.cs
- AllMembershipCondition.cs
- MenuBindingsEditorForm.cs
- SafeNativeMethodsOther.cs
- CodeAttachEventStatement.cs
- SoapExtension.cs
- TypographyProperties.cs
- HybridObjectCache.cs
- Funcletizer.cs
- DataControlLinkButton.cs
- TcpAppDomainProtocolHandler.cs
- SmiMetaDataProperty.cs
- UIntPtr.cs
- SQLDoubleStorage.cs
- ReadContentAsBinaryHelper.cs
- ExpressionBinding.cs
- ClientRuntimeConfig.cs
- ProfileInfo.cs
- ListDesigner.cs
- TransactionFilter.cs
- FacetDescriptionElement.cs
- EmptyEnumerator.cs