Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- ThrowHelper.cs
- SrgsGrammarCompiler.cs
- ReflectionUtil.cs
- DBCommandBuilder.cs
- OutputScope.cs
- CheckBox.cs
- FSWPathEditor.cs
- UrlMapping.cs
- ElementUtil.cs
- LayoutUtils.cs
- OdbcDataReader.cs
- TextTrailingWordEllipsis.cs
- SystemIPAddressInformation.cs
- WebServiceErrorEvent.cs
- NameNode.cs
- XmlUTF8TextReader.cs
- CellConstantDomain.cs
- SQLChars.cs
- DocumentSchemaValidator.cs
- WMIGenerator.cs
- GroupBoxRenderer.cs
- GetPageNumberCompletedEventArgs.cs
- PerformanceCounterManager.cs
- ParsedAttributeCollection.cs
- GC.cs
- Variable.cs
- Link.cs
- PagesSection.cs
- DataServiceContext.cs
- NativeCppClassAttribute.cs
- CroppedBitmap.cs
- ObjectManager.cs
- ListViewSortEventArgs.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- DebugInfoGenerator.cs
- IISMapPath.cs
- TextParaClient.cs
- PropertyMap.cs
- SessionStateSection.cs
- PageEventArgs.cs
- Subordinate.cs
- OdbcConnectionStringbuilder.cs
- HandlerBase.cs
- PropertyValueUIItem.cs
- LinqDataSource.cs
- ClientTarget.cs
- IisTraceListener.cs
- RuntimeWrappedException.cs
- ContentPresenter.cs
- DataGridViewCellConverter.cs
- DocumentProperties.cs
- MailWriter.cs
- XmlExtensionFunction.cs
- SiteOfOriginContainer.cs
- _NegotiateClient.cs
- InputLanguageProfileNotifySink.cs
- OleDbWrapper.cs
- BindingGraph.cs
- FileFormatException.cs
- FamilyTypefaceCollection.cs
- VersionedStreamOwner.cs
- DayRenderEvent.cs
- CommandDevice.cs
- SecurityDocument.cs
- SystemNetworkInterface.cs
- Setter.cs
- GenericsInstances.cs
- SoundPlayerAction.cs
- KeyValueConfigurationCollection.cs
- ContentHostHelper.cs
- WebPartPersonalization.cs
- CodeExpressionCollection.cs
- XdrBuilder.cs
- LoaderAllocator.cs
- EntityObject.cs
- CodeCompiler.cs
- WindowsListViewItemStartMenu.cs
- XhtmlBasicListAdapter.cs
- LabelEditEvent.cs
- DocumentApplicationJournalEntry.cs
- HttpRuntimeSection.cs
- DetailsViewInsertedEventArgs.cs
- Script.cs
- DelegateCompletionCallbackWrapper.cs
- PropertyInformation.cs
- HtmlSelect.cs
- GcSettings.cs
- FlowDocumentReaderAutomationPeer.cs
- TextContainer.cs
- CodeExporter.cs
- NameValueFileSectionHandler.cs
- RectIndependentAnimationStorage.cs
- InstanceLockQueryResult.cs
- DragDeltaEventArgs.cs
- FixedSOMElement.cs
- ToolboxItemCollection.cs
- RegexFCD.cs
- ThreadStartException.cs
- BitmapEffectInputData.cs
- PropertyCondition.cs