internal static ReferenceStep FilterProperty(SceneNode node, ReferenceStep referenceStep) { if (node is RichTextBoxRangeElement) { return(referenceStep); } RichTextBoxElement richTextBoxElement = node as RichTextBoxElement; if (richTextBoxElement != null) { foreach (IPropertyId propertyId in !node.ProjectContext.IsCapabilitySet(PlatformCapability.IsWpf) ? RichTextBoxParagraphsRangeElement.SilverlightTextParagraphProperties : RichTextBoxParagraphsRangeElement.WpfTextParagraphProperties) { if (referenceStep.Equals((object)richTextBoxElement.ProjectContext.ResolveProperty(propertyId))) { return(referenceStep); } } } StyleNode styleNode = node as StyleNode; IType typeId = styleNode == null || styleNode.Platform.Metadata.IsNullType((ITypeId)styleNode.StyleTargetTypeId) ? node.Type : styleNode.StyleTargetTypeId; Type runtimeType = typeId.NearestResolvedType.RuntimeType; if (referenceStep.TargetType.IsAssignableFrom(runtimeType) && (PlatformTypeHelper.GetDeclaringType((IMember)referenceStep) == runtimeType || referenceStep.MemberType == MemberType.DesignTimeProperty)) { return(referenceStep); } ReferenceStep referenceStep1; if (typeId == SceneNodeObjectSet.FilteredPropertiesType) { if (SceneNodeObjectSet.FilteredProperties.TryGetValue(referenceStep, out referenceStep1)) { return(referenceStep1); } } else { SceneNodeObjectSet.FilteredPropertiesType = (ITypeId)typeId; SceneNodeObjectSet.FilteredProperties.Clear(); } referenceStep1 = SceneNodeObjectSet.FilterPropertyInternal((ITypeResolver)node.ProjectContext, typeId, referenceStep); SceneNodeObjectSet.FilteredProperties.Add(referenceStep, referenceStep1); return(referenceStep1); }
internal static ReferenceStep FilterProperty(ITypeResolver typeResolver, IType type, ReferenceStep referenceStep) { return(SceneNodeObjectSet.FilterPropertyInternal(typeResolver, type, referenceStep)); }