protected virtual bool IsResourceCompatible(LocalResourceModel resourceModel) { if (!PlatformTypeHelper.GetPropertyType(this.TargetProperty).IsAssignableFrom(resourceModel.ResourceType)) { return(false); } return(this.DoesStyleOrTemplateApply((IPropertyId)this.TargetProperty, resourceModel.ResourceNode)); }
protected virtual bool IsResourceInUse(LocalResourceModel resourceModel) { DocumentNodePath valueAsDocumentNode = this.TargetElement.GetLocalValueAsDocumentNode(this.TargetPropertyReference); if (valueAsDocumentNode != null) { return(valueAsDocumentNode.Node == resourceModel.ResourceNode); } return(false); }
protected override bool IsResourceInUse(LocalResourceModel resourceModel) { DocumentNodePath valueAsDocumentNode = this.TargetElement.GetLocalValueAsDocumentNode(new PropertyReference(this.GetTargetProperty((ITypeId)resourceModel.ResourceNode.Type))); if (valueAsDocumentNode != null) { return(valueAsDocumentNode.Node == resourceModel.ResourceNode); } return(false); }
protected override bool IsResourceCompatible(LocalResourceModel resourceModel) { DocumentNode resourceNode = resourceModel.ResourceNode; ReferenceStep targetProperty = this.GetTargetProperty((ITypeId)resourceNode.Type); if (!(this.TargetElement is StyleNode) || !BaseFrameworkElement.StyleProperty.Equals((object)targetProperty)) { return(this.DoesStyleOrTemplateApply((IPropertyId)targetProperty, resourceNode)); } return(false); }
protected void SetToResourceInternal(PropertyReference propertyReference, LocalResourceModel resourceModel) { using (SceneEditTransaction editTransaction = this.ViewModel.CreateEditTransaction(string.Format((IFormatProvider)CultureInfo.CurrentCulture, StringTable.PropertySetUndo, new object[1] { (object)this.TargetProperty.Name }))) { IDocumentContext documentContext = this.ViewModel.Document.DocumentContext; DocumentNode keyNode = resourceModel.ResourceKey.Clone(documentContext); DocumentNode resourceExtensionNode = !(propertyReference[0] is DependencyPropertyReferenceStep) || !JoltHelper.TypeSupported((ITypeResolver)this.ViewModel.ProjectContext, PlatformTypes.DynamicResource) ? (DocumentNode)DocumentNodeUtilities.NewStaticResourceNode(documentContext, keyNode) : (DocumentNode)DocumentNodeUtilities.NewDynamicResourceNode(documentContext, keyNode); this.TargetElement.SetValue(propertyReference, (object)resourceExtensionNode); Microsoft.Expression.DesignSurface.Utility.ResourceHelper.EnsureReferencedResourcesAreReachable(resourceModel.ResourceNode, resourceExtensionNode); editTransaction.Commit(); } }
public override void SetValueToLocalResource(SceneNodeProperty propertyKey, LocalResourceModel localResource) { DocumentNode resourceKey = localResource.ResourceKey; PerformanceUtility.StartPerformanceSequence(PerformanceEvent.ApplyResource, "Apply resource."); SceneViewModel viewModel = this.ViewModel; if (viewModel != null) { IDocumentContext documentContext = viewModel.Document.DocumentContext; IProjectContext projectContext = viewModel.ProjectContext; DocumentNode keyNode = resourceKey.Clone(documentContext); bool flag = this.CanSetDynamicExpression && JoltHelper.TypeSupported((ITypeResolver)projectContext, PlatformTypes.DynamicResource); if (flag && this.ShouldAllowAnimation && (propertyKey.IsEnabledRecordCurrentValue && this.ViewModel.AnimationEditor.IsRecording)) { flag = false; } DocumentNode documentNode = !flag ? (DocumentNode)DocumentNodeUtilities.NewStaticResourceNode(documentContext, keyNode) : (DocumentNode)DocumentNodeUtilities.NewDynamicResourceNode(documentContext, keyNode); using (this.ShouldAllowAnimation ? (IDisposable)null : viewModel.AnimationEditor.DeferKeyFraming()) { string description = string.Format((IFormatProvider)CultureInfo.CurrentCulture, StringTable.PropertyChangeUndoDescription, new object[1] { (object)((PropertyEntry)propertyKey).get_PropertyName() }); if (viewModel.Document.IsEditable) { using (SceneEditTransaction editTransaction = viewModel.CreateEditTransaction(description)) { this.SetValue((PropertyReferenceProperty)propertyKey, (object)documentNode); bool isMixed; DocumentNode valueAsDocumentNode = this.GetLocalValueAsDocumentNode(propertyKey, GetLocalValueFlags.CheckKeyframes, out isMixed); if (!isMixed && valueAsDocumentNode != null) { Microsoft.Expression.DesignSurface.Utility.ResourceHelper.EnsureReferencedResourcesAreReachable(localResource.ResourceNode, valueAsDocumentNode); } editTransaction.Commit(); } } } } PerformanceUtility.EndPerformanceSequence(PerformanceEvent.ApplyResource, "Apply resource."); }
public SetToResourceCommand(ResourceListCommand parentCommand, LocalResourceModel resourceModel) { this.parentCommand = parentCommand; this.resourceModel = resourceModel; }
protected virtual void SetToResource(LocalResourceModel resourceModel) { this.SetToResourceInternal(this.TargetPropertyReference, resourceModel); }
protected override void SetToResource(LocalResourceModel resourceModel) { this.SetToResourceInternal(new PropertyReference(this.GetTargetProperty((ITypeId)resourceModel.ResourceNode.Type)), resourceModel); }
public abstract void SetValueToLocalResource(SceneNodeProperty propertyKey, LocalResourceModel localResource);