Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / ToolStripMenuItemCodeDomSerializer.cs / 1 / ToolStripMenuItemCodeDomSerializer.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.Forms.Design.ToolStripMenuItemCodeDomSerializer..ctor()")] namespace System.Windows.Forms.Design { using System; using System.Diagnostics; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.ComponentModel.Design.Serialization; ////// The Reason for having a CustomSerializer for ToolStripMenuItem is the existance of Dummy ToolStripMenuItem for ContextMenuStrips. /// We add this Dummy ToolStripMenuItem on the "Non Site" ToolStrip to Host the DropDown which facilitates the entry of New MenuItems. /// These items are then added to the ContextMenuStrip that we are designing. /// But we dont want the Dummy ToolStripMenuItem to Serialize and hence the need for this Custom Serializer. /// internal class ToolStripMenuItemCodeDomSerializer : System.ComponentModel.Design.Serialization.CodeDomSerializer { ////// We implement this for the abstract method on CodeDomSerializer. /// public override object Deserialize(IDesignerSerializationManager manager, object codeObject) { return GetBaseSerializer(manager).Deserialize(manager, codeObject); } ////// This is a small helper method that returns the serializer for base Class /// private CodeDomSerializer GetBaseSerializer(IDesignerSerializationManager manager) { return (CodeDomSerializer)manager.GetSerializer(typeof(Component), typeof(CodeDomSerializer)); } ////// /// We implement this for the abstract method on CodeDomSerializer. This method /// takes an object graph, and serializes the object into CodeDom elements. /// public override object Serialize(IDesignerSerializationManager manager, object value) { ToolStripMenuItem item = value as ToolStripMenuItem; ToolStrip parent = item.GetCurrentParent() as ToolStrip; //Dont Serialize if we are Dummy Item ... if ((item != null) && !(item.IsOnDropDown) && (parent != null) && (parent .Site == null)) { //dont serialize anything... return null; } else { CodeDomSerializer baseSerializer = (CodeDomSerializer)manager.GetSerializer(typeof(ImageList).BaseType, typeof(CodeDomSerializer)); return baseSerializer.Serialize(manager, value); } } } } // 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
- InternalResources.cs
- CompilerErrorCollection.cs
- ExpressionBinding.cs
- ErrorTableItemStyle.cs
- DataTablePropertyDescriptor.cs
- DesignTimeHTMLTextWriter.cs
- VectorKeyFrameCollection.cs
- SchemaLookupTable.cs
- ComponentRenameEvent.cs
- XmlUtil.cs
- PaperSize.cs
- PolygonHotSpot.cs
- RightsManagementEncryptedStream.cs
- CachedCompositeFamily.cs
- MobileResource.cs
- AllMembershipCondition.cs
- ToolboxDataAttribute.cs
- SqlClientMetaDataCollectionNames.cs
- InputReport.cs
- IODescriptionAttribute.cs
- Polygon.cs
- BitStack.cs
- SearchForVirtualItemEventArgs.cs
- StylusEditingBehavior.cs
- RegexCompiler.cs
- DataFormats.cs
- ErrorWrapper.cs
- FullTextLine.cs
- RecordBuilder.cs
- MimeMapping.cs
- QueryStatement.cs
- XamlWriter.cs
- FigureHelper.cs
- _Semaphore.cs
- ValueUtilsSmi.cs
- DateRangeEvent.cs
- TraceContext.cs
- PageSetupDialog.cs
- HttpModuleActionCollection.cs
- ModifierKeysValueSerializer.cs
- XmlSchemaValidator.cs
- LicenseContext.cs
- SelectingProviderEventArgs.cs
- ResXResourceSet.cs
- WindowsSlider.cs
- ScrollItemProviderWrapper.cs
- RegexMatchCollection.cs
- WindowsSysHeader.cs
- EventLogHandle.cs
- CssStyleCollection.cs
- AsyncPostBackErrorEventArgs.cs
- X509CertificateChain.cs
- NavigationCommands.cs
- SaveWorkflowCommand.cs
- TextElement.cs
- HtmlTableRowCollection.cs
- SamlSerializer.cs
- ProcessModuleDesigner.cs
- DatePickerTextBox.cs
- ServiceNameElement.cs
- FlowDocumentPaginator.cs
- DetailsViewDeleteEventArgs.cs
- ListComponentEditorPage.cs
- WSSecureConversationDec2005.cs
- TagMapInfo.cs
- RepeatBehavior.cs
- DataRowExtensions.cs
- AnnotationStore.cs
- String.cs
- EndEvent.cs
- DesigntimeLicenseContextSerializer.cs
- EventWaitHandleSecurity.cs
- ZeroOpNode.cs
- MenuAutomationPeer.cs
- RemotingSurrogateSelector.cs
- formatter.cs
- OleDbCommand.cs
- HttpProxyTransportBindingElement.cs
- IdentityManager.cs
- FontDialog.cs
- Point3DIndependentAnimationStorage.cs
- RadioButtonRenderer.cs
- DecoratedNameAttribute.cs
- SoapServerMethod.cs
- TableLayoutSettingsTypeConverter.cs
- NonPrimarySelectionGlyph.cs
- ColorMatrix.cs
- XmlSchemaGroup.cs
- UIElementParaClient.cs
- TypedRowHandler.cs
- FieldNameLookup.cs
- ByteStreamBufferedMessageData.cs
- SqlConnectionPoolGroupProviderInfo.cs
- HttpApplication.cs
- ObjectDataSourceView.cs
- FakeModelPropertyImpl.cs
- XDeferredAxisSource.cs
- SqlCacheDependencyDatabase.cs
- DocumentOrderQuery.cs
- UnsafeNativeMethodsMilCoreApi.cs