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
- CodeSnippetTypeMember.cs
- NumberSubstitution.cs
- ExpressionServices.cs
- EntityAdapter.cs
- BooleanExpr.cs
- DataPointer.cs
- CancellableEnumerable.cs
- BuildResult.cs
- AdditionalEntityFunctions.cs
- GraphicsContext.cs
- FtpWebRequest.cs
- BookmarkEventArgs.cs
- StringConverter.cs
- ColorMatrix.cs
- Msec.cs
- JsonFormatGeneratorStatics.cs
- EFDataModelProvider.cs
- ButtonFlatAdapter.cs
- ButtonPopupAdapter.cs
- RegexStringValidator.cs
- ContextConfiguration.cs
- DESCryptoServiceProvider.cs
- QuotedPrintableStream.cs
- AppSecurityManager.cs
- ConfigXmlCDataSection.cs
- WebConfigurationFileMap.cs
- SolidColorBrush.cs
- LabelAutomationPeer.cs
- DataGridDetailsPresenter.cs
- ToolStripDropDownClosingEventArgs.cs
- ItemsControl.cs
- SoapObjectInfo.cs
- HwndProxyElementProvider.cs
- SafeWaitHandle.cs
- DocumentSequenceHighlightLayer.cs
- _Rfc2616CacheValidators.cs
- MainMenu.cs
- PropertyOverridesDialog.cs
- ImageMetadata.cs
- SafeRegistryKey.cs
- JsonCollectionDataContract.cs
- LeftCellWrapper.cs
- ContentElement.cs
- GenerateTemporaryTargetAssembly.cs
- FindProgressChangedEventArgs.cs
- ButtonPopupAdapter.cs
- ZoneButton.cs
- ForAllOperator.cs
- BitmapMetadataBlob.cs
- MethodBuilder.cs
- DeclaredTypeElementCollection.cs
- WebPartAuthorizationEventArgs.cs
- TypeDescriptor.cs
- ScrollChangedEventArgs.cs
- PropertyCondition.cs
- XamlContextStack.cs
- FlowNode.cs
- MessageHeaderException.cs
- KeysConverter.cs
- LayoutTable.cs
- WorkflowMarkupSerializerMapping.cs
- TypeTypeConverter.cs
- ToolStripDesignerUtils.cs
- HttpHeaderCollection.cs
- SecurityContextSecurityTokenAuthenticator.cs
- HexParser.cs
- SoundPlayer.cs
- FontCacheUtil.cs
- CachingHintValidation.cs
- DataTable.cs
- itemelement.cs
- MsmqActivation.cs
- DependencyObjectProvider.cs
- Overlapped.cs
- TransactionContextManager.cs
- ProtocolsSection.cs
- EDesignUtil.cs
- WhitespaceSignificantCollectionAttribute.cs
- COM2AboutBoxPropertyDescriptor.cs
- Metafile.cs
- Regex.cs
- EntitySqlQueryState.cs
- CannotUnloadAppDomainException.cs
- arclist.cs
- Deflater.cs
- DataControlFieldHeaderCell.cs
- Button.cs
- XmlDictionaryString.cs
- StringBuilder.cs
- PageCodeDomTreeGenerator.cs
- RequestTimeoutManager.cs
- CodeCompileUnit.cs
- QilSortKey.cs
- BookmarkList.cs
- RadialGradientBrush.cs
- HatchBrush.cs
- OdbcException.cs
- RootAction.cs
- BaseDataBoundControl.cs
- SafeTimerHandle.cs