protected override BaseFrameworkElement CreateElementOnStartDrag() { bool flag = true; Asset asset = this.Asset; TypeAsset typeAsset = asset as TypeAsset; StyleAsset styleAsset = asset as StyleAsset; if (typeAsset != null && typeAsset.Type is IUnreferencedType) { flag = false; } else if (styleAsset != null) { UserThemeAssetProvider themeAssetProvider = styleAsset.Provider as UserThemeAssetProvider; if (themeAssetProvider != null && !themeAssetProvider.IsLocal) { flag = false; } } if (flag && asset.CanCreateInstance(this.ActiveSceneInsertionPoint)) { return(this.CreateInstance(Rect.Empty) as BaseFrameworkElement); } return((BaseFrameworkElement)null); }
protected override StyleAsset GetRelatedUserThemeAsset(SceneNode node, SceneNode rootNode) { if (node == rootNode) { return(this.styleAsset); } return(StyleAsset.Find((IEnumerable)this.provider.Assets, (ITypeId)node.Type) ?? base.GetRelatedUserThemeAsset(node, rootNode)); }
internal bool IsPrototypingStyle(StyleAsset styleAsset) { ResourceDictionaryAssetProvider dictionaryAssetProvider = styleAsset.Provider as ResourceDictionaryAssetProvider; if (dictionaryAssetProvider != null) { return((dictionaryAssetProvider.ResourceDictionaryUsage & ResourceDictionaryUsage.PrototypingStyles) != ResourceDictionaryUsage.Unknown); } return(false); }
internal bool IsStyleControlParts(StyleAsset styleAsset) { DocumentPrimitiveNode documentPrimitiveNode = ((DocumentCompositeNode)styleAsset.ResourceModel.ValueNode).Properties[DesignTimeProperties.IsControlPartProperty] as DocumentPrimitiveNode; if (documentPrimitiveNode != null) { return(documentPrimitiveNode.GetValue <bool>()); } return(false); }
internal bool IsStyleLocal(StyleAsset styleAsset) { foreach (IProjectDocument projectDocument in (IEnumerable <IProjectDocument>) this.ProjectContext.Documents) { if (projectDocument.DocumentType != ProjectDocumentType.ResourceDictionary && projectDocument.DocumentRoot == styleAsset.ResourceModel.ValueNode.DocumentRoot) { return(true); } } return(false); }
public override bool IsResourceValid(ResourceModel resourceModel) { DocumentNode keyNode = resourceModel.KeyNode; DocumentCompositeNode valueNode = resourceModel.ValueNode as DocumentCompositeNode; bool flag = keyNode != null && valueNode != null && PlatformTypes.Style.IsAssignableFrom((ITypeId)valueNode.Type) && valueNode.Properties[StyleNode.TargetTypeProperty] != null; if (flag) { IType styleType = StyleAsset.GetStyleType(valueNode); if (styleType == null || styleType.RuntimeType == (Type)null || !TypeUtilities.HasDefaultConstructor(styleType.RuntimeType, false)) { flag = false; } } return(flag); }
public static bool ApplyActiveUserThemeStyle(SceneNode node) { IType type = node == null ? (IType)null : node.Type; if (type == null) { return(false); } StyleAsset activeUserThemeAsset = node.DesignerContext.AssetLibrary.FindActiveUserThemeAsset((ITypeId)type); if (activeUserThemeAsset != null) { return(activeUserThemeAsset.ApplyStyle(node)); } return(false); }
public StyleAsset FindActiveUserThemeAsset(ITypeId type) { if (this.DesignerContext.ActiveProject != null && this.ActiveUserThemeProvider != null && this.ActiveUserThemeProvider.CanInsert(this.DesignerContext.ActiveProject)) { IXamlProject xamlProject = this.DesignerContext.ActiveProject as IXamlProject; if (xamlProject == null || xamlProject.ProjectContext == null) { return((StyleAsset)null); } IType type1 = xamlProject.ProjectContext.ResolveType(type); if (type1 != null) { return(StyleAsset.Find((IEnumerable)this.ActiveUserThemeProvider.ThemeAssets, (ITypeId)type1)); } } return((StyleAsset)null); }
public static StyleAsset Find(IEnumerable assets, ITypeId unresolvedType) { IType type = (IType)null; foreach (object obj in assets) { StyleAsset styleAsset = obj as StyleAsset; if (styleAsset != null) { if (type == null) { type = styleAsset.StyleType.PlatformMetadata.ResolveType(unresolvedType); } if (styleAsset.StyleType.Equals((object)type)) { return(styleAsset); } } } return((StyleAsset)null); }
public StyleAssetInstantiator(SceneView sceneView, StyleAssetProvider provider, StyleAsset styleAsset) : base(sceneView) { this.provider = provider; this.styleAsset = styleAsset; }