#

UWP, WPF: C# Code zum suchen eines Parent Controls
 
Mit dem folgenden Code-Sample kann man in einer XAML-Struktur so lange über die Parent Eigenschaft eines UIElements nach oben arbeiten, bis man einem bestimmten Elementtyp gefunden hat.
In diesem Beispiel wird von einem Child-Element das aktuelle UserControl gesucht, in dem es sich zur Laufzeit befindet.

 
C# Code:
Der Code prüft immer wieder das Parent Element eines XAML Elements, bis der passende Element-Type getroffen wird.
 


private FrameworkElement fp_Find_ParentControl_of_Type(Type type,FrameworkElement start_Element)
{
//-----------< fp_Find_ParentControl_of_Type() >---------
FrameworkElement element = this;
FrameworkElement parent;
//--< Loop up until end or type-match >--
while (1 == 1)
{
parent = element.Parent as FrameworkElement;
if (parent == null) return null;
if (parent.GetType() == type )
{
//< ok >
return parent;
//</ ok >
}
element = parent;
}
//--</ Loop up until end or type-match >--
//-----------</ fp_Find_ParentControl_of_Type() >---------
}

 
 
Aufruf:
Zum Aufruf der Methode muss man nur den Ziel-Typ eingeben und das aktuelle Element, welches sein Parent sucht.

private async void fl_Open_ContextMenu(Point point)
{
//-----------< fl_Open_ContextMenu() >----------

//< search Parent Control >
FrameworkElement element = fp_Find_ParentControl_of_Type(typeof(_UserControls.UCThumbList) , this);
if (element == null) return;
_UserControls.UCThumbList ucThumpList = element as _UserControls.UCThumbList;
//< search Parent Control >
 
//< open menu >
await ucThumpList.fp_Menu_open(point,this);
//</ open menu >
 
//-----------</ fl_Open_ContextMenu() >----------
}

 
Mobile

.

yesmovies