Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / Markup / StaticExtension.cs / 1305600 / StaticExtension.cs
/****************************************************************************\ * * File: StaticExtension.cs * * Class for Xaml markup extension for static field and property references. * * Copyright (C) 2004 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Windows.Input; using System.Reflection; using MS.Internal.WindowsBase; using MS.Utility; using System.Runtime.CompilerServices; using System.Windows.Markup; using System.Windows; namespace MS.Internal.Markup { ////// WPF wrapper for StaticExtension. Optimizes some common SystemResourceKeys & Commands /// internal class StaticExtension : System.Windows.Markup.StaticExtension { public StaticExtension() : base() { } public StaticExtension(String member) : base(member) { } ////// Return an object that should be set on the targetObject's targetProperty /// for this markup extension. For a StaticExtension this is a static field /// or property value. /// /// Object that can provide services for the markup extension. ////// The object to set on this property. /// public override object ProvideValue(IServiceProvider serviceProvider) { if (Member == null) { throw new InvalidOperationException(SR.Get(SRID.MarkupExtensionStaticMember)); } object value; if (MemberType != null) { value = SystemResourceKey.GetSystemResourceKey(MemberType.Name + "." + Member); if (value != null) { return value; } } else { value = SystemResourceKey.GetSystemResourceKey(Member); if (value != null) { return value; } // Validate the _member int dotIndex = Member.IndexOf('.'); if (dotIndex < 0) { throw new ArgumentException(SR.Get(SRID.MarkupExtensionBadStatic, Member)); } // Pull out the type substring (this will include any XML prefix, e.g. "av:Button") string typeString = Member.Substring(0, dotIndex); if (typeString == string.Empty) { throw new ArgumentException(SR.Get(SRID.MarkupExtensionBadStatic, Member)); } // Get the IXamlTypeResolver from the service provider if (serviceProvider == null) { throw new ArgumentNullException("serviceProvider"); } IXamlTypeResolver xamlTypeResolver = serviceProvider.GetService(typeof(IXamlTypeResolver)) as IXamlTypeResolver; if (xamlTypeResolver == null) { throw new ArgumentException(SR.Get(SRID.MarkupExtensionNoContext, GetType().Name, "IXamlTypeResolver")); } // Use the type resolver to get a Type instance MemberType = xamlTypeResolver.Resolve(typeString); // Get the member name substring Member = Member.Substring(dotIndex + 1, Member.Length - dotIndex - 1); } value = CommandConverter.GetKnownControlCommand(MemberType, Member); if (value != null) { return value; } return base.ProvideValue(serviceProvider); } } } // 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
- CngAlgorithm.cs
- GlyphingCache.cs
- NetMsmqSecurityElement.cs
- Attachment.cs
- ProfileProvider.cs
- DesignerRegionMouseEventArgs.cs
- XsltConvert.cs
- SqlBulkCopyColumnMappingCollection.cs
- WindowsScrollBarBits.cs
- PropertyToken.cs
- TreeWalkHelper.cs
- GetWorkflowTree.cs
- OleDbConnection.cs
- BindingManagerDataErrorEventArgs.cs
- ApplicationServiceHelper.cs
- MailSettingsSection.cs
- dsa.cs
- WmfPlaceableFileHeader.cs
- DropShadowEffect.cs
- GeneralTransform3DTo2DTo3D.cs
- RequestResizeEvent.cs
- AccessibilityHelperForXpWin2k3.cs
- WaitHandleCannotBeOpenedException.cs
- CalloutQueueItem.cs
- PreservationFileWriter.cs
- SapiRecoInterop.cs
- Transform3D.cs
- ImageCodecInfoPrivate.cs
- ResourceDictionary.cs
- ToolStripItemRenderEventArgs.cs
- UrlRoutingHandler.cs
- Range.cs
- SystemDropShadowChrome.cs
- BeginSelectCardRequest.cs
- BindingList.cs
- RawStylusSystemGestureInputReport.cs
- DiscoveryEndpointValidator.cs
- TableCellCollection.cs
- util.cs
- XmlName.cs
- Utils.cs
- DesignerCalendarAdapter.cs
- AssemblyAttributesGoHere.cs
- HtmlImageAdapter.cs
- ConfigDefinitionUpdates.cs
- LinqDataSourceContextData.cs
- SettingsPropertyValue.cs
- Transform3DGroup.cs
- Figure.cs
- ContentFilePart.cs
- TCPListener.cs
- Resources.Designer.cs
- DataRecord.cs
- PrintPreviewGraphics.cs
- SchemaImporter.cs
- DynamicMetaObject.cs
- CodeStatementCollection.cs
- Validator.cs
- HealthMonitoringSection.cs
- Message.cs
- FieldMetadata.cs
- XamlStackWriter.cs
- DesignTimeParseData.cs
- DrawingContextDrawingContextWalker.cs
- TCEAdapterGenerator.cs
- EmissiveMaterial.cs
- XmlReaderDelegator.cs
- ConfigurationSectionCollection.cs
- FixedTextView.cs
- TrackingLocation.cs
- AnalyzedTree.cs
- VirtualPathExtension.cs
- MembershipUser.cs
- StringInfo.cs
- RemoteWebConfigurationHostStream.cs
- NonVisualControlAttribute.cs
- SizeConverter.cs
- Drawing.cs
- DragDeltaEventArgs.cs
- Wildcard.cs
- SizeLimitedCache.cs
- DoubleLinkList.cs
- xmlsaver.cs
- ScrollItemProviderWrapper.cs
- DocumentOrderComparer.cs
- SessionStateModule.cs
- TableRowCollection.cs
- HtmlShimManager.cs
- TreeNodeStyle.cs
- PageEventArgs.cs
- ComponentRenameEvent.cs
- DataGridViewHitTestInfo.cs
- HMACSHA1.cs
- ScriptManagerProxy.cs
- TreeNode.cs
- ScrollBar.cs
- SQLCharsStorage.cs
- OleDbEnumerator.cs
- StateDesigner.CommentLayoutGlyph.cs
- AlphabeticalEnumConverter.cs