此範例說明如何使用 FindName 方法按 Name 值尋找元素。
範例
在此範例中,按名稱尋找特定元素的方法會撰寫為按鈕的事件處理常式。
stackPanel 是要搜尋的根 Name 的 FrameworkElement,而範例方法隨後會以視覺化方式表示找到的元素,方法是將其轉換成 TextBlock,並變更其中一個 TextBlock 可見的 UI 屬性。
void Find(object sender, RoutedEventArgs e)
{
object wantedNode = stackPanel.FindName("dog");
if (wantedNode is TextBlock)
{
// Following executed if Text element was found.
TextBlock wantedChild = wantedNode as TextBlock;
wantedChild.Foreground = Brushes.Blue;
}
}
Private Sub Find(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim wantedNode As Object = stackPanel.FindName("dog")
If TypeOf wantedNode Is TextBlock Then
' Following executed if Text element was found.
Dim wantedChild As TextBlock = TryCast(wantedNode, TextBlock)
wantedChild.Foreground = Brushes.Blue
End If
End Sub
備註
此 FindName 方法只會尋找屬於 XAML 名稱範圍一部分的元素。 如果您在載入 XAML 之後,以程式設計方式將元素新增至物件樹狀結構,則元素的 Name 或 x:Name 值不會自動在 XAML 名稱範圍中註冊。 若要讓動態新增的元素可依名稱尋找,請先呼叫 RegisterName XAML 名稱範圍 (通常是頁面或視窗根目錄),再將元素新增至父容器。 如需詳細資訊,請參閱 XAML 名稱範圍。