Gewusst wie: hinzufügen QuickInfo für alle Steuerelemente in einem Formular programmgesteuert WPF, C#?
Ich habe eine WPF-Form mit verschiedenen Arten der Kontrolle, wie Textfelder, Textblöcke, combobox, Tasten usw. Ich muss hinzufügen von QuickInfos zu jedem dieser Steuerelemente dynamisch in C#, so dass Sie können die folgenden Informationen anzuzeigen:
- X-und Y-position
- TabIndex.
Ich den code wie unten für die einzelnen Steuerelemente wie unten (code für textbox für jetzt):
foreach (Control ctrl in grd.Children)
{
if (ctrl.GetType().ToString() == "System.Controls.TextBox")
{
tbox = ctrl as TextBox;
Point p = Mouse.GetPosition(tbox);
tbox.ToolTip =p.X + " " + p.Y + " \n " + tbox.TabIndex ;
}
}
Aber das wird nicht funktionieren. Irgendwelche Gedanken?
- Könnten Sie etwas konkreter, was genau nicht funktioniert? Funktioniert der tooltip nicht Hinzugefügt werden, überhaupt nicht oder mit falschen Daten? Funktioniert Ihr code ausgeführt werden, überhaupt?
- neben den gegebenen Antworten, vor allem Rafals, erwägen Sie die Verwendung eines DataTemplate und Databinding, denn ich bin mir ziemlich sicher, dass Sie Leben wollen, aktualisieren Sie die QuickInfo. Und die Art und Weise, die Sie verwenden derzeit die "win forms" Weg, das ist nicht geeignet für wpf. Zumindest gibt es viel bessere alternativen. Google DataBinding, DataTemplate, INotifyPropertyChanged.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst Ihren Typ-checking ist einfach nur böse.
Ändern
oder noch besser
Beachten Sie, dass in wpf TextBox wird in
System.Windows.Controls
namespace.Deine Schleife wird nur prüfen, der ersten Ebene in der Visuellen Struktur, wenn Sie wollen, um andere Container, Vorlagen alles, was Gruppen steuert, dann haben Sie zum Durchlaufen des Baumes. Sehen diese, wie es zu tun.
Nehmen wir an, Sie tun MVVM.
Dann haben Sie wahrscheinlich eine ViewModel-Klasse. In dieser Klasse, die Sie definieren können
einen dynamischen string, der für jedes Steuerelement, genau dort, wo Sie definieren Ihre Kontrollen.
In der XAML-Code, den Sie gerade definieren, die QuickInfo, z.B.
Textblock text kann geliefert werden, in der ViewModel
und Verbindlich wird Sie zu Ihrer Ansicht.
Nehme ich an, dass Ihr ViewModel auch knowns auf die Registerkarte Steuerelemente sind.
Weitere Informationen über Tooltips, es ist die WPFTutorials Website WPF-Tutorial auf Tooltip-Steuerelemente
Weitere Informationen zu MVVM, gibt es ein schnelles tutorial hier: MSDN auf MVVM
Ihre Typ-checking ist falsch (namespace!). Versuchen Sie dies: