Zellposition im WPF DataGrid beim MouseOver feststellen.
-
Montag, 30. Juli 2012 09:42
Hallo,
kann mir da jemand helfen?
Im WPF DataGrid möchte ich beim MouseOver- Ereignis zu der Zelle, über die sich die Maus gerade befindet und zu der darüber liegenden Zelle jeweils die Position der Zelle zu dem übergeordnetem Canvas Objekt haben.
Überhaupt, komme ich nicht drauf, wie dynamisch zur Laufzeit zu einer bestimmte Zelle die Eigenschaften gelesen bzw. verändert werden kann.
D.h. gibt es z.B. ein Pendant für diese Codezeile von Windows Forms- DataGid in WPF?:
Debug.Print(dgBelege.Rows(1).Cells(1).ColumnIndex.ToString)
Wenn ich dazu die Lösung bekomme werde ich wahrscheinlich das Prinzip des DataGrids wesentlich besser verstehen.
Danke schon mal im voraus.
Schöne Grüße
Dirk
- Verschoben Robert BreitenhoferMicrosoft Contingent Staff, Moderator Dienstag, 31. Juli 2012 13:18 WPF (aus:Visual Basic (ab Version 2002 / .NET))
Alle Antworten
-
Dienstag, 31. Juli 2012 15:58
Hallo vbdick,
die Position der Maus kann man natürlich zur Laufzeit herausfinden. Wenn Sie unter [1] schauen, können Sie sich informieren, wie man die in einem Grid bekommen kann. Falls der Grid über keine Elemente verfügt, ist es auch möglich die Spalte zu liefern. Unter [3] und [4] können Sie herausfinden wie man die Position der Maus auf einem Canvas bekommen kann.
[1] http://stackoverflow.com/questions/1259606/in-a-wpf-grid-how-can-i-find-the-row-column-at-the-mouse-location
[2] http://www.tikalk.com/net/forums/wpf-get-grids-row-and-column-indices-mouse-position
[3] http://stackoverflow.com/questions/5690698/get-mouse-position-on-canvas-but-not-on-window
[4] http://stackoverflow.com/questions/11737665/get-mouse-position-on-canvas-with-transparent-background
Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.
Viele Grüße,
Hristo Valev
MSDN Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline
Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu MarkenzeichenInformationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.- Als Antwort markiert Robert BreitenhoferMicrosoft Contingent Staff, Moderator Freitag, 31. August 2012 19:53
-
Donnerstag, 2. August 2012 11:26
Hallo Hristo,
vielen Dank für die Antwort, jetzt weiss ich auch wo eigentlich mein Problem liegt. Ich muss von der DataGrid- Komponente auf die darunterliegende Grid- Komponente kommen. Und da wird dann die Funktion Grid.GetColumn(element) funktionieren, oder?
Bloß wie komme ich darauf?
Gruß Dirk
-
Montag, 13. August 2012 09:15
Hallo nochmal,
bin leider noch nicht weitergekommen.
Die Lösung ist für ein "Grid".
Ich benötige allerdings eine Lösung für das "DataGrid".
Beim DataGrid funktioniert Grid.GetColumn(element) nicht :-(
Da kommt immer 0;0 raus.
Schönen Gruß
Dirk
-
Freitag, 17. August 2012 14:57
Hallo vbdirk,
zu Ihrer Frage, habe ich einen Foreneintrag gefunden, wo sich eine Funktion, mit der von Ihnen erwünschten Funktionalität, befindet. Diese liefert die Zeile und Spalte eines DataGrids, worüber sich momentan die Maus befindet. Dieses Verhalten ist durch den MouseHover Event realisiert. Mehr darüber, sowie die Implementierung davon können Sie unter [1] finden.
[1] http://bytes.com/topic/c-sharp/answers/278831-mouse-position-datagrid-during-mousehover
Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.
Viele Grüße,
Hristo Valev
MSDN Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline
Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu MarkenzeichenInformationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.- Als Antwort markiert Robert BreitenhoferMicrosoft Contingent Staff, Moderator Freitag, 31. August 2012 19:52
-
Freitag, 31. August 2012 19:53Besitzer
Hallo vbdirk,
Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
RobertRobert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

