Udostępnij za pośrednictwem


Sprawdzanie właściwości XAML podczas debugowania

Możesz uzyskać widok w czasie rzeczywistym działającego kodu XAML przy użyciu dynamicznego drzewa wizualnego i Eksploratora właściwości na żywo. Te narzędzia udostępniają widok drzewa elementów interfejsu użytkownika uruchomionej aplikacji XAML i przedstawiają właściwości środowiska uruchomieniowego dowolnego wybranego elementu interfejsu użytkownika.

Możesz użyć tych narzędzi w następujących konfiguracjach:

Typ aplikacji System operacyjny i narzędzia
Aplikacje Windows Presentation Foundation (4.0 lub nowsze) System Windows 7 lub nowszy
Aplikacje uniwersalne systemu Windows System Windows 10 lub nowszy z zestawem Windows 10 SDK lub nowszym
Wieloplatformowe aplikacje interfejsu użytkownika aplikacji platformy .NET System Windows 10 lub nowszy, .NET 8 i nowsze wersje, Visual Studio 2022 17.9 lub nowszy

Przyjrzyj się elementom w dynamicznym drzewie wizualnym

Zacznijmy od bardzo prostej aplikacji WPF, która ma widok listy i przycisk. Za każdym razem, gdy klikniesz przycisk, do listy zostanie dodany inny element. Elementy numerowane parzyste są kolorami szarymi, a elementy numerowane nieparzyste są kolorami żółtymi.

Tworzenie projektu

  1. Utwórz nową aplikację WPF języka C# (Plik>nowy>projekt, wpisz "C# WPF", wybierz szablon projektu aplikacji WPF, nadaj projektowi nazwę TestXAML, a następnie sprawdź, czy poprawna wersja platformy .NET jest wyświetlana na liście rozwijanej Platforma docelowa).

  2. Zmień plik MainWindow.xaml na następujący:

    <Window x:Class="TestXAML.MainWindow"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       xmlns:local="clr-namespace:TestXAML"
       mc:Ignorable="d"
       Title="MainWindow" Height="350" Width="525">
       <Grid>
          <Button x:Name="button" Background="LightBlue" Content="Add Item" HorizontalAlignment="Left" Margin="216,206,0,0" VerticalAlignment="Top" Width="75" Click="button_Click"/>
          <ListBox x:Name="listBox" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100" Margin="205,80,0,0"/>
       </Grid>
    </Window>
    
  3. Dodaj następującą procedurę obsługi poleceń do pliku MainWindow.xaml.cs:

    int count;
    
    private void button_Click(object sender, RoutedEventArgs e)
    {
       ListBoxItem item = new ListBoxItem();
       item.Content = "Item" + ++count;
       if (count % 2 == 0)
       {
          item.Background = Brushes.LightGray;
       }
       else
       {
          item.Background = Brushes.LightYellow;
       }
       listBox.Items.Add(item);
    }
    
  4. Skompiluj projekt i rozpocznij debugowanie. (Konfiguracja kompilacji musi być debugowania, a nie wydania. Aby uzyskać więcej informacji na temat konfiguracji kompilacji, zobacz Understanding Build Configurations (Omówienie konfiguracji kompilacji).

    Po wyświetleniu okna powinien zostać wyświetlony pasek narzędzi w aplikacji w uruchomionej aplikacji.

    Main window of the app

  5. Teraz kliknij przycisk Dodaj element kilka razy, aby dodać nowe elementy do listy.

Sprawdzanie właściwości XAML

  1. Następnie otwórz okno Dynamiczne drzewo wizualne, klikając lewy przycisk paska narzędzi w aplikacji (lub przechodząc do pozycji Debugowanie > drzewa wizualnego usługi Windows > Live). Po otwarciu przeciągnij go z dala od położenia dokowania, abyśmy mogli przyjrzeć się temu oknie i okno Właściwości na żywo obok siebie.

  2. W oknie Live Visual Tree (Dynamiczne drzewo wizualne) rozwiń węzeł ContentPresenter. Powinien zawierać węzły przycisku i pola listy. Rozwiń pole listy (a następnie element ScrollContentPresenter i ItemsPresenter), aby znaleźć elementy pola listy.

    Jeśli nie widzisz węzła ContentPresenter , przełącz ikonę Pokaż tylko mój kod XAML na pasku narzędzi. Począwszy od programu Visual Studio 2019 w wersji 16.4, widok elementów XAML jest domyślnie uproszczony przy użyciu funkcji Just My XAML. To ustawienie można również wyłączyć w opcjach, aby zawsze wyświetlać wszystkie elementy XAML.

    Okno powinno wyglądać następująco:

    ListBoxItems in the Live Visual Tree

  3. Wróć do okna aplikacji i dodaj jeszcze kilka elementów. W dynamicznym drzewie wizualnym powinno zostać wyświetlonych więcej elementów pola listy.

  4. Teraz przyjrzyjmy się właściwościom jednego z elementów pola listy.

    Wybierz pierwszy element pola listy w dynamicznym drzewie wizualnym i kliknij ikonę Pokaż właściwości na pasku narzędzi. Powinien zostać wyświetlony Eksplorator właściwości na żywo. Należy pamiętać, że pole Zawartość to "Item1", a pole Kolor tła>jest #FFFFFFE0.

  5. Wróć do dynamicznego drzewa wizualnego i wybierz drugi element pola listy. Eksplorator właściwości na żywo powinien pokazać, że pole Zawartość ma wartość "Item2", a pole Kolor tła>jest #FFD3D3D3 (w zależności od motywu).

    Uwaga

    Żółte obramowanie wokół właściwości w Eksploratorze właściwości live oznacza, że wartość właściwości jest ustawiana za pomocą powiązania, takiego jak Color = {BindingExpression}. Zielona krawędź oznacza, że wartość jest ustawiana przy użyciu zasobu, takiego jak Color = {StaticResource MyBrush}.

    Rzeczywista struktura kodu XAML zawiera wiele elementów, których prawdopodobnie nie interesujesz się bezpośrednio, a jeśli nie znasz dobrze kodu, możesz mieć trudności z poruszaniem się po drzewie, aby znaleźć szukane elementy. Dlatego dynamiczne drzewo wizualne ma kilka sposobów, które umożliwiają użycie interfejsu użytkownika aplikacji w celu ułatwienia znalezienia elementu, który chcesz zbadać.

    Wybierz pozycję Element w uruchomionej aplikacji. Ten tryb można włączyć po wybraniu tego przycisku na pasku narzędzi Live Visual Tree . W tym trybie można wybrać element interfejsu użytkownika w aplikacji, a dynamiczne drzewo wizualne (i podgląd właściwości na żywo) automatycznie aktualizuje, aby wyświetlić węzeł w drzewie odpowiadającym temu elementowi i jego właściwościom. Począwszy od programu Visual Studio 2019 w wersji 16.4, można skonfigurować zachowanie zaznaczenia elementu.

    Wyświetl moduły adoratorów układu w uruchomionej aplikacji. Ten tryb można włączyć po wybraniu przycisku, który znajduje się natychmiast po prawej stronie przycisku Wybierz element... . Gdy moduły układów wyświetlania są włączone, powoduje to, że okno aplikacji wyświetla linie poziome i pionowe wzdłuż granic wybranego obiektu, dzięki czemu można zobaczyć, do czego jest wyrównany, a także prostokąty pokazujące marginesy. Na przykład włącz opcję Wybierz element i Układ wyświetlania, a następnie wybierz blok tekstowy Dodaj element w aplikacji. Węzeł bloku tekstu powinien być widoczny w dynamicznym drzewie wizualnym i we właściwościach bloku tekstu w Podglądzie właściwości na żywo, a także poziomych i pionowych linii na granicach bloku tekstu.

    LivePropertyViewer in DisplayLayout

    Track Focused, element. Możesz włączyć ten tryb, wybierając ten przycisk na pasku narzędzi Live Visual Tree. W tym trybie jest wyświetlany kod XAML, w którym zadeklarowano element, jeśli masz dostęp do kodu źródłowego aplikacji. Wybierz pozycję Wybierz element i Śledź element skoncentrowany, a następnie wybierz przycisk w naszej aplikacji testowej. Plik MainWindow.xaml zostanie otwarty w programie Visual Studio, a kursor znajduje się w wierszu, w którym jest zdefiniowany przycisk.

Używanie narzędzi XAML z uruchomionymi aplikacjami

Tych narzędzi XAML można używać nawet wtedy, gdy nie masz kodu źródłowego. Po dołączeniu do uruchomionej aplikacji XAML możesz również użyć dynamicznego drzewa wizualnego w elementach interfejsu użytkownika tej aplikacji. Oto przykład użycia tej samej aplikacji testowej WPF, która była używana wcześniej.

  1. Uruchom aplikację TestXaml w konfiguracji wydania. Nie można dołączyć do procesu uruchomionego w konfiguracji debugowania .

  2. Otwórz drugie wystąpienie programu Visual Studio i kliknij pozycję Debuguj > dołączanie do procesu. Znajdź plik TestXaml.exe na liście dostępnych procesów, a następnie kliknij przycisk Dołącz.

  3. Aplikacja zostanie uruchomiona.

  4. W drugim wystąpieniu programu Visual Studio otwórz dynamiczne drzewo wizualne (Debugowanie > drzewa wizualnego Windows > Live). Powinny zostać wyświetlone elementy interfejsu użytkownika TestXaml i powinno być możliwe manipulowanie nimi tak jak podczas bezpośredniego debugowania aplikacji.

Pisanie i debugowanie uruchomionego kodu XAML przy użyciu Przeładowywanie na gorąco XAML