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
- DispatcherHooks.cs
- LiteralControl.cs
- BezierSegment.cs
- ManipulationVelocities.cs
- TextTreeTextNode.cs
- ExtensionSimplifierMarkupObject.cs
- DataService.cs
- __ConsoleStream.cs
- XmlToDatasetMap.cs
- TimeSpanConverter.cs
- BaseTemplateParser.cs
- RoleExceptions.cs
- FormsAuthenticationTicket.cs
- BitmapFrameDecode.cs
- StructureChangedEventArgs.cs
- FixedSOMPageConstructor.cs
- SparseMemoryStream.cs
- RawStylusInputReport.cs
- ExpressionBindingsDialog.cs
- MethodCallConverter.cs
- AlphabetConverter.cs
- BamlLocalizableResource.cs
- ParallelTimeline.cs
- NavigationProperty.cs
- XmlChoiceIdentifierAttribute.cs
- ScriptingJsonSerializationSection.cs
- CompilationLock.cs
- coordinatorscratchpad.cs
- SafeFileHandle.cs
- SchemaNotation.cs
- TableHeaderCell.cs
- CustomPopupPlacement.cs
- PermissionToken.cs
- Floater.cs
- SecondaryViewProvider.cs
- XamlFigureLengthSerializer.cs
- HttpVersion.cs
- RayHitTestParameters.cs
- AffineTransform3D.cs
- MethodAccessException.cs
- XmlReader.cs
- DiagnosticsConfigurationHandler.cs
- IgnoreFlushAndCloseStream.cs
- _ShellExpression.cs
- EntitySqlQueryBuilder.cs
- XmlNodeWriter.cs
- ResourcePool.cs
- HandlerWithFactory.cs
- DynamicActionMessageFilter.cs
- Win32Native.cs
- UnsafeNativeMethods.cs
- _ProxyChain.cs
- Component.cs
- SHA1Managed.cs
- FixedHyperLink.cs
- SqlClientFactory.cs
- SqlConnectionString.cs
- UiaCoreApi.cs
- XmlDocumentFragment.cs
- GifBitmapEncoder.cs
- PipelineModuleStepContainer.cs
- SoapFault.cs
- SourceChangedEventArgs.cs
- EventMap.cs
- MessageRpc.cs
- InstallerTypeAttribute.cs
- HtmlContainerControl.cs
- CodeAssignStatement.cs
- ContextMenu.cs
- SpoolingTask.cs
- EmptyImpersonationContext.cs
- XPathDocument.cs
- TextView.cs
- GradientBrush.cs
- NetworkInformationPermission.cs
- HttpRequest.cs
- WhitespaceRule.cs
- BinaryMethodMessage.cs
- Point4D.cs
- ResourceWriter.cs
- UpdatePanelControlTrigger.cs
- LineMetrics.cs
- GenericXmlSecurityToken.cs
- AnchoredBlock.cs
- StorageMappingItemCollection.cs
- SvcFileManager.cs
- WorkflowTraceTransfer.cs
- TextBox.cs
- UIPermission.cs
- GatewayIPAddressInformationCollection.cs
- DesignerAdapterAttribute.cs
- Size3DValueSerializer.cs
- CultureInfoConverter.cs
- AstNode.cs
- Types.cs
- CodeAssignStatement.cs
- PropertyPushdownHelper.cs
- PreservationFileWriter.cs
- ApplicationSecurityManager.cs
- VirtualPath.cs