static public Container AlsContainer( this UINodeInfoInTree containerNode, bool treatIconAsSprite = false, RectInt?regionConstraint = null) { if (!(containerNode?.VisibleIncludingInheritance ?? false)) { return(null); } var MengeKandidaatInputTextAst = containerNode?.MatchingNodesFromSubtreeBreadthFirst(k => k.PyObjTypNameMatchesRegexPatternIgnoreCase("SinglelineEdit|QuickFilterEdit")); var ListeInputText = MengeKandidaatInputTextAst ?.Select(textBoxAst => { var LabelAst = textBoxAst.LargestLabelInSubtree(); if (null == LabelAst) { return(null); } var LabelText = LabelAst?.LabelText(); return(new UIElementInputText(textBoxAst.AsUIElementIfVisible(), LabelText)); }) ?.WhereNotDefault() ?.OrdnungLabel() ?.ToArrayIfNotEmpty(); var ListeButton = containerNode?.ExtraktMengeButtonLabelString()?.OrdnungLabel() ?.ToArrayIfNotEmpty(); var ListeButtonAst = ListeButton?.Select(button => containerNode.FirstNodeWithPyObjAddressFromSubtreeBreadthFirst(button.Id))?.ToArray(); var ListeTextBoxAst = ListeInputText?.Select(textBox => containerNode.FirstNodeWithPyObjAddressFromSubtreeBreadthFirst(textBox.Id))?.ToArray(); var LabelContainerAussclus = new[] { ListeButtonAst, ListeTextBoxAst }.ConcatNullable().ToArray(); var ListeLabelText = containerNode?.ExtraktMengeLabelString() ?.WhereNitEnthalte(LabelContainerAussclus) ?.OrdnungLabel() ?.ToArrayIfNotEmpty(); var setSprite = containerNode.SetSpriteFromChildren(treatIconAsSprite) ?.OrdnungLabel() ?.ToArrayIfNotEmpty(); var baseElement = containerNode.AsUIElementIfVisible(); if (regionConstraint.HasValue) { baseElement = baseElement.WithRegionConstrainedToIntersection(regionConstraint.Value); } return(new Container(baseElement) { ButtonText = ListeButton, InputText = ListeInputText, LabelText = ListeLabelText, Sprite = setSprite, }); }