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
- DataGridViewToolTip.cs
- ObjectParameter.cs
- BooleanConverter.cs
- WorkflowDurableInstance.cs
- LoginDesignerUtil.cs
- DriveNotFoundException.cs
- Underline.cs
- CompressedStack.cs
- BridgeDataRecord.cs
- NavigationPropertyEmitter.cs
- DynamicValidatorEventArgs.cs
- OrderedDictionary.cs
- XPathAncestorQuery.cs
- HttpHandlerAction.cs
- ListenUriMode.cs
- StylusShape.cs
- Delegate.cs
- WpfPayload.cs
- InvokeSchedule.cs
- TextTreeTextNode.cs
- EmptyStringExpandableObjectConverter.cs
- ControllableStoryboardAction.cs
- streamingZipPartStream.cs
- BooleanToVisibilityConverter.cs
- XmlSchemas.cs
- DataKey.cs
- VirtualDirectoryMappingCollection.cs
- WindowsGraphicsWrapper.cs
- ConfigurationValidatorAttribute.cs
- TreeNode.cs
- SevenBitStream.cs
- ReadOnlyDictionary.cs
- FileRegion.cs
- sapiproxy.cs
- ProgressiveCrcCalculatingStream.cs
- Label.cs
- ObjRef.cs
- ExtendedPropertiesHandler.cs
- DbInsertCommandTree.cs
- TrackBar.cs
- CommandLibraryHelper.cs
- ThemeDictionaryExtension.cs
- BatchParser.cs
- OpCodes.cs
- MetadataImporter.cs
- PenThread.cs
- ListViewEditEventArgs.cs
- PointLight.cs
- DataGridSortCommandEventArgs.cs
- Lasso.cs
- AnimationLayer.cs
- DataGridViewAdvancedBorderStyle.cs
- InvalidComObjectException.cs
- Normalization.cs
- ExceptionUtil.cs
- BasicExpandProvider.cs
- DocumentCollection.cs
- GeneratedCodeAttribute.cs
- ContourSegment.cs
- LOSFormatter.cs
- TextStore.cs
- UIntPtr.cs
- TransformerInfoCollection.cs
- MemberExpression.cs
- FlowchartSizeFeature.cs
- DocumentSequenceHighlightLayer.cs
- AnimationClockResource.cs
- UnknownBitmapEncoder.cs
- SymbolEqualComparer.cs
- MachinePropertyVariants.cs
- ToolBarButtonClickEvent.cs
- ToolStripLocationCancelEventArgs.cs
- CompositeActivityCodeGenerator.cs
- TextOutput.cs
- Repeater.cs
- UInt64Storage.cs
- CollectionChangedEventManager.cs
- OleDbException.cs
- ResponseStream.cs
- UInt16Storage.cs
- ErrorWrapper.cs
- AutomationPropertyInfo.cs
- DataGridViewComboBoxCell.cs
- Visual3D.cs
- PropertyPathWorker.cs
- CompilerCollection.cs
- LicenseManager.cs
- DataObjectSettingDataEventArgs.cs
- EngineSite.cs
- SelectionGlyphBase.cs
- ErrorFormatter.cs
- UncommonField.cs
- StreamHelper.cs
- FigureParaClient.cs
- InsufficientMemoryException.cs
- MasterPageBuildProvider.cs
- Operators.cs
- DataPagerFieldItem.cs
- Control.cs
- ScrollProviderWrapper.cs