Первый раз, когда WPF поступает из WinForm и довольно хорошо корректируется, но я в тупике участвовал в одной процедуре, которую я использовал довольно часто. Это был код, который я использовал в WinForm для автоматического управления элементами управления, которые были помечены таким образом; label1, label2, label3 и т. д.WPF - поиск инкрементных нумерованных элементов управления с использованием Visual Basic
Dim lbl As Label
Dim matcheslbl() As Control
For i As Integer = 1 To 24
matcheslbl = Me.Controls.Find("label" & i, True)
lbl = DirectCast(matcheslbl(0), Label)
If matcheslbl.Length > 0 AndAlso TypeOf matcheslbl(0) Is Label Then
lbl.Text = "Data Here"
End If
Next
Как использовать ту же процедуру в WPF? Моя иерархическая схема в форме идет от WrapPanel> StackPanel> Canvas> Элементы управления
После изменения кода, который мне известно, я получаю зависание в аспекте Me.Controls и не могу найти что-либо после экстенсивно-поискового поиска, или я не полностью его понимаю , Это мой модифицированный код ...
For i As Integer = 1 To 24
Dim lbl As Label
Dim matcheslbl() As Control
matcheslbl = Me.WrapPanel.FindName("lbl" & i)
lbl = DirectCast(matcheslbl(0), Label)
If matcheslbl.Length > 0 AndAlso TypeOf matcheslbl(0) Is Label Then
lbl.Content = "Data Here"
End If
Next
Это вешает здесь ..
matcheslbl = Me.WrapPanel.FindName("lbl" & i)
Любая помощь о том, как выполнить мою предыдущую процедуру в WPF и дать подробное описание о том, как добиться этого, так как Я очень новичок в WPF
Это поможет, если вы продемонстрировали свой XAML, чтобы упростить объяснение иерархии. – Steve
Я также хотел бы отметить, что Label - намного более сильный WPF-контроль, чем TextBlock, и если вы просто предоставляете основной текст в окне, вы должны использовать TextBlock. Я лично нашел нулевые значения для Label vs, используя более легкий TextBlock. –