Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / System / Windows / DynamicResourceExtension.cs / 1 / DynamicResourceExtension.cs
/****************************************************************************\ * * File: DynamicResourceExtension.cs * * Class for Xaml markup extension for static resource references. * * Copyright (C) 2004 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.ComponentModel; using System.Windows; using System.Windows.Markup; using System.Reflection; using MS.Internal; // Helper namespace System.Windows { ////// Class for Xaml markup extension for static resource references. /// [TypeConverter(typeof(DynamicResourceExtensionConverter))] [MarkupExtensionReturnType(typeof(object))] public class DynamicResourceExtension : MarkupExtension { ////// Constructor that takes no parameters /// public DynamicResourceExtension() { } ////// Constructor that takes the resource key that this is a static reference to. /// public DynamicResourceExtension( object resourceKey) { if (resourceKey == null) { throw new ArgumentNullException("resourceKey"); } _resourceKey = resourceKey; } ////// Return an object that should be set on the targetObject's targetProperty /// for this markup extension. For DynamicResourceExtension, this is the object found in /// a resource dictionary in the current parent chain that is keyed by ResourceKey /// ////// The object to set on this property. /// public override object ProvideValue(IServiceProvider serviceProvider) { if (ResourceKey == null) { throw new InvalidOperationException(SR.Get(SRID.MarkupExtensionResourceKey)); } if (serviceProvider != null) { IProvideValueTarget provideValueTarget = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget; // DynamicResourceExtensions are not allowed On CLR props except for Setter,Trigger,Condition (bugs 1183373,1572537) DependencyObject targetDependencyObject; DependencyProperty targetDependencyProperty; Helper.CheckCanReceiveMarkupExtension(this, provideValueTarget, out targetDependencyObject, out targetDependencyProperty); } return new ResourceReferenceExpression(ResourceKey); } ////// The key in a Resource Dictionary used to find the object refered to by this /// Markup Extension. /// [ConstructorArgument("resourceKey")] // Uses an instance descriptor public object ResourceKey { get { return _resourceKey; } set { if (value == null) { throw new ArgumentNullException("value"); } _resourceKey = value; } } private object _resourceKey; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /****************************************************************************\ * * File: DynamicResourceExtension.cs * * Class for Xaml markup extension for static resource references. * * Copyright (C) 2004 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.ComponentModel; using System.Windows; using System.Windows.Markup; using System.Reflection; using MS.Internal; // Helper namespace System.Windows { ////// Class for Xaml markup extension for static resource references. /// [TypeConverter(typeof(DynamicResourceExtensionConverter))] [MarkupExtensionReturnType(typeof(object))] public class DynamicResourceExtension : MarkupExtension { ////// Constructor that takes no parameters /// public DynamicResourceExtension() { } ////// Constructor that takes the resource key that this is a static reference to. /// public DynamicResourceExtension( object resourceKey) { if (resourceKey == null) { throw new ArgumentNullException("resourceKey"); } _resourceKey = resourceKey; } ////// Return an object that should be set on the targetObject's targetProperty /// for this markup extension. For DynamicResourceExtension, this is the object found in /// a resource dictionary in the current parent chain that is keyed by ResourceKey /// ////// The object to set on this property. /// public override object ProvideValue(IServiceProvider serviceProvider) { if (ResourceKey == null) { throw new InvalidOperationException(SR.Get(SRID.MarkupExtensionResourceKey)); } if (serviceProvider != null) { IProvideValueTarget provideValueTarget = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget; // DynamicResourceExtensions are not allowed On CLR props except for Setter,Trigger,Condition (bugs 1183373,1572537) DependencyObject targetDependencyObject; DependencyProperty targetDependencyProperty; Helper.CheckCanReceiveMarkupExtension(this, provideValueTarget, out targetDependencyObject, out targetDependencyProperty); } return new ResourceReferenceExpression(ResourceKey); } ////// The key in a Resource Dictionary used to find the object refered to by this /// Markup Extension. /// [ConstructorArgument("resourceKey")] // Uses an instance descriptor public object ResourceKey { get { return _resourceKey; } set { if (value == null) { throw new ArgumentNullException("value"); } _resourceKey = value; } } private object _resourceKey; } } // 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
- cryptoapiTransform.cs
- SQLCharsStorage.cs
- SwitchElementsCollection.cs
- Binding.cs
- LocalFileSettingsProvider.cs
- CodeExpressionCollection.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- Compiler.cs
- CalloutQueueItem.cs
- SqlTriggerContext.cs
- HitTestFilterBehavior.cs
- HostingEnvironment.cs
- WCFModelStrings.Designer.cs
- XPathNodeList.cs
- Vector3DCollection.cs
- XmlRawWriter.cs
- XmlBindingWorker.cs
- OdbcDataReader.cs
- __TransparentProxy.cs
- LogSwitch.cs
- DefaultWorkflowLoaderService.cs
- PropertyStore.cs
- ObjectParameter.cs
- EntityContainerRelationshipSetEnd.cs
- ServiceThrottlingElement.cs
- DataGridViewTopRowAccessibleObject.cs
- CodeConstructor.cs
- AssemblyCollection.cs
- TableLayoutStyleCollection.cs
- ResourceReferenceExpressionConverter.cs
- BooleanFunctions.cs
- LinkLabel.cs
- MergePropertyDescriptor.cs
- GridViewColumnHeaderAutomationPeer.cs
- ButtonStandardAdapter.cs
- TransformGroup.cs
- ExpressionBindings.cs
- UrlAuthorizationModule.cs
- CorrelationTokenTypeConvertor.cs
- MsmqTransportSecurity.cs
- EntityDesignPluralizationHandler.cs
- CounterSample.cs
- SoapEnvelopeProcessingElement.cs
- MatrixConverter.cs
- ReachDocumentSequenceSerializerAsync.cs
- EntityDataSourceWrapper.cs
- SatelliteContractVersionAttribute.cs
- TemplateControlBuildProvider.cs
- MatrixKeyFrameCollection.cs
- TextAction.cs
- HttpCacheParams.cs
- CaseInsensitiveOrdinalStringComparer.cs
- PackWebResponse.cs
- EmissiveMaterial.cs
- DmlSqlGenerator.cs
- TdsParserStaticMethods.cs
- ContextMenuStrip.cs
- CopyNamespacesAction.cs
- PreProcessInputEventArgs.cs
- DataSetSchema.cs
- GridLength.cs
- MiniMapControl.xaml.cs
- GenericUriParser.cs
- EventLogConfiguration.cs
- CryptoConfig.cs
- DataServiceProviderMethods.cs
- XmlQueryRuntime.cs
- MetadataUtilsSmi.cs
- PresentationAppDomainManager.cs
- NullNotAllowedCollection.cs
- ScrollPatternIdentifiers.cs
- StrokeNodeOperations.cs
- ExceptionTrace.cs
- VBIdentifierTrimConverter.cs
- Button.cs
- Ref.cs
- XmlArrayItemAttribute.cs
- Attribute.cs
- DeflateStream.cs
- XmlSchemaSubstitutionGroup.cs
- ViewManager.cs
- FlowDocument.cs
- Automation.cs
- HwndSourceParameters.cs
- TransactionScopeDesigner.cs
- Funcletizer.cs
- SQLMoneyStorage.cs
- Grid.cs
- UIElementParagraph.cs
- UnicodeEncoding.cs
- InvalidCastException.cs
- TargetControlTypeAttribute.cs
- HeaderedItemsControl.cs
- ObjectPropertyMapping.cs
- ContainerVisual.cs
- ObjectViewQueryResultData.cs
- SemanticBasicElement.cs
- XmlSchemaSimpleTypeUnion.cs
- NativeMethods.cs
- PermissionSetEnumerator.cs