WPF FrameworkElement clic del mouse problema
-
24-10-2019 - |
Domanda
In un'applicazione WPF ho io mucchio di CustomControls all'interno di una griglia. Per la lavorazione di clic del mouse su di loro io uso l'evento MouseLeftButtonDown
della griglia e nel controllo ho gestore di eventi che CustomControl stato cliccato:
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
FrameworkElement feSourceComm = e.Source as FrameworkElement;
MyCustomControl SCurrentComm = new MyCustomControl();
try
{
SCurrentComm = (MyCustomControl)feSourceComm;
}
catch (Exception)
{
...
Il problema è apparso quando ho messo tutti i CustomControls in un controllo utente e quindi all'interno della griglia. In questo approccio caso non funziona.
Ho controllato il tipo di fonte di click in ogni caso per e.Source.GetType().ToString();
e ottenere i seguenti risultati:
Quando non ci sono nessun problema (nel caso in cui ho messo CustomControls nella griglia senza UserControl)
MyProjectNamespace.MyCustomControl
Quando ho messo CustomControls nel UserControl e poi nella griglia
MyProjectNamespace.UserControls.MyUserControlName
Quando ho messo CustomControls nel UserControl e poi nella griglia e caricare l'UserControl da file esterno da XamlReader.Load
System.Windows.Controls.UserControl
Quindi, la mia domanda:
Come fare CustomControls vizible come e.Source
quando sono all'interno di un UserControl?
Soluzione
e.OriginalSource
vi dirà quale elemento specifico il click è accaduto. se questo non è il vostro CustomControl, a piedi, lungo la catena capogruppo del OriginalSource
fino a trovare il tuo CustomControl