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
- CollectionChangeEventArgs.cs
- ToolStrip.cs
- TemplatedMailWebEventProvider.cs
- VectorConverter.cs
- LineUtil.cs
- ManualResetEventSlim.cs
- parserscommon.cs
- DesignerActionVerbItem.cs
- ContextItemManager.cs
- SyndicationDeserializer.cs
- SHA1Managed.cs
- UiaCoreProviderApi.cs
- Monitor.cs
- ProfileInfo.cs
- ScaleTransform.cs
- CacheAxisQuery.cs
- Misc.cs
- SchemaImporterExtensionElementCollection.cs
- DiffuseMaterial.cs
- PathNode.cs
- SiteMapPathDesigner.cs
- CollectionViewGroupRoot.cs
- ToolStripSeparator.cs
- XmlnsCache.cs
- EmissiveMaterial.cs
- DrawListViewColumnHeaderEventArgs.cs
- StylusLogic.cs
- _DigestClient.cs
- ImagingCache.cs
- KeyTime.cs
- HtmlShimManager.cs
- DetailsViewDeleteEventArgs.cs
- SplineKeyFrames.cs
- CardSpaceShim.cs
- SmiRecordBuffer.cs
- GeneralTransform.cs
- Validator.cs
- ReferencedAssembly.cs
- elementinformation.cs
- GenericEnumConverter.cs
- HttpCapabilitiesEvaluator.cs
- DataGridItemEventArgs.cs
- DSASignatureFormatter.cs
- TagNameToTypeMapper.cs
- GridItemCollection.cs
- BindingObserver.cs
- ArrayWithOffset.cs
- FacetDescriptionElement.cs
- SerializationStore.cs
- RuntimeConfigurationRecord.cs
- OracleBoolean.cs
- ToolbarAUtomationPeer.cs
- EditingMode.cs
- FlowDocumentReaderAutomationPeer.cs
- DocumentOutline.cs
- ViewManager.cs
- RankException.cs
- DetailsViewCommandEventArgs.cs
- XmlWriterDelegator.cs
- DependencyPropertyKind.cs
- BitmapFrame.cs
- XpsFilter.cs
- WorkflowTraceTransfer.cs
- WmiEventSink.cs
- DesignerListAdapter.cs
- CodePageEncoding.cs
- ProjectionCamera.cs
- WsdlBuildProvider.cs
- Missing.cs
- TextTabProperties.cs
- UIElementPropertyUndoUnit.cs
- AsnEncodedData.cs
- CryptoHelper.cs
- VisualBasicImportReference.cs
- ListManagerBindingsCollection.cs
- HtmlTable.cs
- DependencyPropertyAttribute.cs
- WebExceptionStatus.cs
- CachedFontFace.cs
- StartUpEventArgs.cs
- TimeZoneNotFoundException.cs
- AstTree.cs
- MouseBinding.cs
- ComponentEditorForm.cs
- QilParameter.cs
- HttpWebResponse.cs
- SingleObjectCollection.cs
- GlyphInfoList.cs
- SortQuery.cs
- FormsAuthenticationCredentials.cs
- ErrorFormatter.cs
- RIPEMD160.cs
- EnumBuilder.cs
- MimeWriter.cs
- StylusPlugin.cs
- InvalidAsynchronousStateException.cs
- Utils.cs
- Rfc4050KeyFormatter.cs
- AccessText.cs
- RawUIStateInputReport.cs