Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Systemy powiadomień
Istnieje kilka sposobów informowania użytkownika o tym, co dzieje się w programie Visual Studio w odniesieniu do zadań tworzenia oprogramowania.
Podczas implementowania dowolnego rodzaju powiadomień:
Zachowaj liczbę powiadomień do minimalnej obowiązującej liczby. Komunikaty powiadomień powinny dotyczyć większości użytkowników programu Visual Studio lub użytkowników określonego obszaru funkcji/funkcji. Nadmierne użycie powiadomień może spowodować odsunie użytkownika w bok lub zmniejszenie postrzeganej łatwości korzystania z systemu.
Upewnij się, że prezentujesz jasne, możliwe do działania komunikaty , których użytkownik może użyć do wywołania odpowiedniego kontekstu w celu dokonania bardziej złożonych wyborów i podjęcia dalszych działań.
Odpowiednio prezentuj komunikaty synchroniczne i asynchroniczne. Powiadomienia synchroniczne wskazują, że coś wymaga natychmiastowej uwagi, na przykład w przypadku awarii usługi internetowej lub zgłoszenia wyjątku kodu. Użytkownik powinien być informowany o tych sytuacjach od razu w sposób, który wymaga ich danych wejściowych, takich jak w modalnym oknie dialogowym. Powiadomienia asynchroniczne to powiadomienia, o których użytkownik powinien wiedzieć, ale nie musi działać natychmiast, na przykład po zakończeniu operacji kompilacji lub zakończeniu wdrażania witryny internetowej. Te komunikaty powinny być bardziej otoczenia i nie przerywać przepływu zadań użytkownika.
Użyj modalnych okien dialogowych tylko wtedy, gdy jest to konieczne, aby uniemożliwić użytkownikowi podjęcie dalszych działań przed potwierdzeniem wiadomości lub podjęciem decyzji przedstawionej w oknie dialogowym.
Usuń powiadomienia otoczenia, gdy nie są już prawidłowe. Nie należy wymagać, aby użytkownik odrzucił powiadomienie, jeśli podjął już działania w celu rozwiązania problemu, o którego został powiadomiony.
Należy pamiętać, że powiadomienia mogą prowadzić do fałszywych korelacji. Użytkownicy mogą sądzić, że co najmniej jedna z ich akcji wyzwoliła powiadomienie, gdy w rzeczywistości nie było związku przyczynowego. W komunikacie z powiadomieniem o kontekście, wyzwalaczu i źródle powiadomienia należy wyczyścić.
Wybieranie właściwej metody
Ta tabela ułatwia wybranie odpowiedniej metody powiadamiania użytkownika o wiadomości.
Metoda | Używanie | Nie używaj |
---|---|---|
Modalne okna dialogowe komunikatów o błędach | Użyj polecenia , gdy przed kontynuowaniem jest wymagana odpowiedź użytkownika. | Nie należy używać, gdy nie ma potrzeby blokowania użytkownika i przerywania przepływu. Unikaj używania modalnych okien dialogowych, jeśli można pokazać komunikat w inny, mniej uciążliwy sposób. |
Pasek stanu środowiska IDE | Użyj, gdy istnieją informacje tekstowe otoczenia dotyczące stanu procesu. | Nie używaj samych. Najlepiej używać w połączeniu z innym mechanizmem przesyłania opinii. |
Osadzony pasek informacyjny | W oknie narzędzia lub oknie dokumentu użyj polecenia , aby powiadomić o postępie, stanie błędu, wynikach i/lub informacjach z możliwością działania. | Nie należy używać, jeśli informacje nie są istotne dla lokalizacji, w której znajduje się pasek informacji. Nie należy używać poza oknem dokumentu/narzędzia. |
Zmiany kursora myszy | Może służyć do powiadamiania o tym, że trwa proces. Służy również do powiadamiania o zmianie stanu myszy, na przykład gdy przeciąganie/upuszczanie jest w toku lub że kursor myszy znajduje się w określonym trybie, na przykład w trybie rysunku. | Nie należy używać do krótkich zmian postępu lub jeśli trzebienie kursora jest prawdopodobne (na przykład w przypadku powiązania z częściami dłuższego procesu zamiast do całego procesu). |
Wskaźniki postępu | Użyj polecenia , gdy musisz zgłosić postęp (określić lub nieokreślony). Istnieje wiele różnych typów wskaźników postępu i określonego użycia dla każdego z nich. Zobacz Wskaźniki postępu. | |
Okno Powiadomień programu Visual Studio | Okno Powiadomienia nie jest publicznie rozszerzalne. Służy jednak do przekazywania szeregu komunikatów dotyczących programu Visual Studio, w tym krytycznych problemów z licencją i powiadomieniami informacyjnymi o aktualizacjach programu Visual Studio lub pakietów. | Nie należy używać w przypadku innych typów powiadomień. |
Lista błędów | Jeśli problem jest związany bezpośrednio z aktualnie otwartym rozwiązaniem użytkownika, które ma problem (błąd/ostrzeżenie/informacje), może być konieczne podjęcie akcji w kodzie. Obejmuje to na przykład: - Komunikaty kompilatora (błąd/ostrzeżenie/informacje) - Analizator kodu/Komunikaty diagnostyczne dotyczące kodu - Kompilowanie komunikatów Może być odpowiednia w przypadku problemów związanych z plikami projektu lub rozwiązania, ale najpierw należy rozważyć Eksplorator rozwiązań wskazanie. |
Nie należy używać w przypadku elementów, które nie mają żadnego związku z otwartym kodem rozwiązania użytkownika. |
Powiadomienia edytora: żarówka | Użyj polecenia , gdy masz dostępną poprawkę, aby rozwiązać problem, który istnieje w otwartym pliku. Należy pamiętać, że żarówka powinna być również używana do hostowania szybkich akcji wykonywanych na kodzie użytkownika na żądanie, takich jak refaktoryzacje, ale w takim przypadku nie będzie wyświetlany "styl powiadomień". |
Nie należy używać w przypadku elementów, które nie mają żadnego związku z otwartym plikiem. |
Powiadomienia edytora: Zygzaki | Użyj polecenia , aby powiadomić użytkownika o problemie z określonym zakresem otwartego kodu (na przykład czerwonym przełącznikiem błędów). | Nie używaj elementów, które nie odnoszą się do określonego zakresu ich otwartego kodu. |
Osadzone paski stanu | Służy do zapewniania stanu związanego z zawartością lub procesem w kontekście określonego okna narzędzia, okna dokumentu lub okna dialogowego. | Nie należy używać do ogólnych powiadomień, procesów ani elementów produktów, które nie mają żadnego związku z zawartością w określonym oknie. |
Powiadomienia na pasku zadań systemu Windows | Użyj polecenia , aby wyświetlić powiadomienia dla procesów poza procesami lub aplikacjami towarzyszącymi. | Nie używaj powiadomień, które są istotne dla środowiska IDE. |
Bąbelki powiadomień | Służy do powiadamiania o zdalnym procesie lub zmianie poza środowiskiem IDE. | Nie należy używać jako środka do powiadamiania użytkownika o procesach w środowisku IDE. |
Metody powiadomień
Modalne okna dialogowe komunikatów o błędach
Modalne okno dialogowe komunikatu o błędzie służy do wyświetlania komunikatu o błędzie wymagającego potwierdzenia lub akcji użytkownika.
Modalne okno dialogowe komunikatu o błędzie ostrzegające użytkownika o nieprawidłowym parametry połączenia do bazy danych
Pasek stanu środowiska IDE
Prawdopodobieństwo, że użytkownicy zauważą, że tekst paska stanu jest skorelowany z całym środowiskiem komputera i określonym środowiskiem z platformą Windows. Baza klientów programu Visual Studio zwykle występuje w obu obszarach, chociaż nawet użytkownicy z systemem Windows z możliwością wiedzy mogą przegapić zmiany na pasku stanu. W związku z tym pasek stanu jest najlepiej używany do celów informacyjnych lub jako nadmiarowy sygnał dla informacji przedstawionych gdzie indziej. Wszelkiego rodzaju krytyczne informacje, które użytkownik musi rozwiązać, powinny być natychmiast udostępniane w oknie dialogowym lub w oknie narzędzia Powiadomienia.
Pasek stanu programu Visual Studio został zaprojektowany tak, aby umożliwić wyświetlanie kilku typów informacji. Jest on podzielony na regiony opinii, projektanta, paska postępu, animacji i klienta.
Region opinii i region projektanta są zawsze widoczne. Pasek postępu i regiony animacji są zawsze dynamiczne i oparte na kontekście użytkownika. Region projektanta ma statyczną szerokość określoną przez długość ciągu, który jest pobierany z towarzyszącego zasobu dla wiadomości SMS. Dzięki temu lokalizacja może zmieniać szerokość bez konieczności zmiany kodu. W przypadku języka angielskiego szerokość tego ciągu wynosi około 220 pikseli. Region projektanta będzie zachowywał się normalnie, a region opinii będzie absorbować pozostałe miejsce.
Pasek stanu jest również kolorowany, aby dodać zainteresowanie wizualne i wartość funkcjonalną, komunikując różne zmiany stanu środowiska IDE, takie jak gdy środowisko IDE jest w trybie debugowania.
Kolory paska stanu środowiska IDE
Osadzony pasek informacyjny
Pasek informacyjny może być używany w górnej części okna dokumentu lub okna narzędzia, aby poinformować użytkownika o stanie lub warunku. Może również oferować polecenia, dzięki czemu użytkownik może mieć możliwość łatwego podejmowania działań. Pasek informacji jest standardową kontrolką powłoki. Unikaj tworzenia własnych, które będą działać i będą wyświetlane niespójne z innymi osobami w środowisku IDE. Zobacz Paski informacji , aby uzyskać szczegółowe informacje o implementacji i wskazówki dotyczące użycia.
Pasek informacyjny osadzony w oknie dokumentu, ostrzegając użytkownika, że środowisko IDE jest w trybie debugowania historycznego, a edytor nie odpowie w taki sam sposób, jak w trybie debugowania standardowego.
Zmiany kursora myszy
Podczas zmieniania kursora myszy użyj kolorów powiązanych z usługą VSColor i są już skojarzone z kursorem. Zmiany kursora mogą służyć do wskazywania trwającej operacji, a także stref trafień, w których użytkownik umieszcza kursor na obiekcie docelowym, który można przeciągać, upuszczać na lub używać do wybierania obiektu.
Użyj kursora myszy zajętego/oczekiwania tylko wtedy, gdy cały dostępny czas procesora CPU musi być zarezerwowany dla operacji, uniemożliwiając użytkownikowi wyrażenie wszelkich dalszych danych wejściowych. W większości przypadków w przypadku dobrze napisanych aplikacji korzystających z wielowątków czasy, gdy użytkownicy nie mogą wykonywać innych operacji, powinny być rzadkie.
Należy pamiętać, że zmiany kursora są przydatne jako nadmiarowy sygnał dla informacji przedstawionych gdzie indziej. Nie należy polegać na zmianie kursora jako jedyny sposób komunikowania się z użytkownikiem, szczególnie podczas próby przekazania czegoś, co jest krytyczne dla użytkownika.
Wskaźniki postępu
Wskaźniki postępu są ważne dla przekazywania opinii użytkowników podczas procesów, które trwają dłużej niż kilka sekund. Wskaźniki postępu mogą być wyświetlane w miejscu (w pobliżu punktu uruchamiania akcji w toku) na pasku stanu osadzonego, w modalnym oknie dialogowym lub na pasku stanu programu Visual Studio. Postępuj zgodnie ze wskazówkami w sekcji Wskaźniki postępu dotyczące ich użycia i implementacji.
Okno Powiadomień programu Visual Studio
Okno Powiadomienia programu Visual Studio powiadamia deweloperów o licencjonowaniu, środowisku (Visual Studio), rozszerzeniach i aktualizacjach. Użytkownicy mogą odrzucać poszczególne powiadomienia lub ignorować niektóre typy powiadomień. Lista ignorowanych powiadomień jest zarządzana na stronie Opcje narzędzi>.
Okno Powiadomienia nie jest obecnie rozszerzalne.
Okno narzędzia Powiadomienia programu Visual Studio
Lista błędów
Powiadomienie na liście błędów wskazuje błędy i ostrzeżenia, które wystąpiły podczas kompilacji i lub procesu kompilacji, i umożliwia użytkownikowi nawigowanie w kodzie do tego konkretnego błędu kodu.
Lista błędów w programie Visual Studio
Osadzone paski stanu
Ponieważ pasek stanu środowiska IDE jest dynamiczny, wraz z kontekstem regionu klienta ustawionym na aktywne okno dokumentu i informacje aktualizowane w kontekście użytkownika i/lub odpowiedzi systemu, trudno jest zachować ciągłe wyświetlanie informacji lub zapewnić stan długoterminowych procesów asynchronicznych. Na przykład pasek stanu środowiska IDE nie jest odpowiedni dla powiadomień o wynikach przebiegu testu dla wielu przebiegów i/lub natychmiast możliwych do wykonania wyborów elementów. Ważne jest, aby zachować takie informacje o stanie w kontekście dokumentu lub okna narzędzia, w którym użytkownik dokonuje wyboru lub rozpoczyna proces.
Pasek stanu osadzonego w programie Visual Studio
Powiadomienia na pasku zadań systemu Windows
Obszar powiadomień systemu Windows znajduje się obok zegara systemowego na pasku zadań systemu Windows. Wiele narzędzi i składników oprogramowania udostępnia ikony w tym obszarze, dzięki czemu użytkownik może uzyskać menu kontekstowe dla zadań obejmujących cały system, takich jak zmiana rozdzielczości ekranu lub uzyskiwanie aktualizacji oprogramowania.
Powiadomienia na poziomie środowiska powinny być udostępniane w centrum powiadomień programu Visual Studio, a nie w obszarze powiadomień systemu Windows.
Bąbelki powiadomień
Bąbelki powiadomień mogą być wyświetlane jako informacje w edytorze/projektancie lub w ramach obszaru Powiadomienia systemu Windows. Użytkownik postrzega te bąbelki jako problemy, które mogą rozwiązać później, co jest korzyścią dla powiadomień niekrytycznych. Bąbelki są nieodpowiednie dla krytycznych informacji, które użytkownik musi rozwiązać od razu. Jeśli używasz bąbelków powiadomień w programie Visual Studio, postępuj zgodnie ze wskazówkami dotyczącymi pulpitu systemu Windows dotyczącymi bąbelków powiadomień.
Bąbelek powiadomień w obszarze Powiadomień systemu Windows używanym dla programu Visual Studio
Wskaźniki postępu
Wskaźniki postępu są ważną częścią systemu powiadomień do przekazywania opinii użytkowników. Informują użytkownika o zakończeniu procesów i operacji. Znane typy wskaźników obejmują paski postępu, obracające się kursory i animowane ikony. Typ i rozmieszczenie wskaźnika postępu zależy od kontekstu, w tym od tego, co jest zgłaszane i jak długo proces lub operacja potrwa.
Czynników
Aby określić, który typ wskaźnika jest odpowiedni, należy określić następujące czynniki.
Czas: czas trwania operacji
Modalność: czy operacja jest modalna dla środowiska (blokuje interfejs użytkownika do momentu ukończenia procesu)
Trwałe/przejściowe: czy ostateczny wynik postępu musi być zgłaszany i/lub wyświetlany w późniejszym czasie
Determinate/Indeterminate: czy można obliczyć czas zakończenia i postęp operacji
Lokalizacja graficzna/tekstowa: czy postęp lub proces jest przechwytywany w tekście, w treści komunikatu, czy określonej kontrolce, takiej jak kontrolka Drzewo
Bliskość: czy postęp powinien znajdować się w bliskim sąsiedztwie interfejsu użytkownika, z którymi jest związany. (Na przykład może znajdować się na pasku stanu, który może być daleko, lub czy musi znajdować się w pobliżu przycisku, który uruchomił proces?)
Określanie postępu
Typ postępu | Kiedy i jak używać | Uwagi |
---|---|---|
Pasek postępu (określ) | Oczekiwany czas trwania wynosi >5 sekund. Może zawierać tekstowy opis szczegółów procesu. |
NIE osadzaj tekstu w animacji. |
Pasek informacji | Obsługa komunikatów skojarzona z kontekstowym interfejsem użytkownika. Zobacz Paski informacji. Może zawierać tekstowy opis szczegółów procesu. |
Nie używaj wielu pasków informacyjnych, jeśli musisz wskazać wiele procesów. Zamiast tego użyj skumulowanych pasków postępu. |
Okno wyniku | Powiadomienie przejściowe: proces na poziomie aplikacji, który użytkownik chce przejrzeć szczegóły po zakończeniu. | Nie używaj, jeśli użytkownik będzie musiał odwołać się do danych później. |
Plik dziennika | W przypadku, gdy ważne jest zapisanie szczegółów po zakończeniu, w połączeniu z nieprzejętnym powiadomieniem. | |
Pasek stanu | Powiadomienie przejściowe: proces na poziomie aplikacji, którego użytkownik nie będzie potrzebował szczegółów po zakończeniu. Zawiera osadzony pasek postępu. Może zawierać tekstowy opis szczegółów procesu. |
Nieokreślony postęp
Typ postępu | Kiedy i jak używać | Uwagi |
---|---|---|
Pasek postępu (nieokreślony) | Oczekiwany czas trwania wynosi >5 sekund. Może zawierać tekstowy opis szczegółów procesu. |
NIE osadzaj tekstu w animacji. |
Mrówki (animowane kropki poziome) | Podróż okrężna na serwer. Umieszczony w pobliżu punktu kontekstu u góry kontenera nadrzędnego. |
Nie używaj elementu , jeśli nie są nadrzędne przez cały kontener. |
Pokrętło (pierścień postępu) | Proces skojarzony z kontekstowym interfejsem użytkownika lub miejscem, w którym należy wziąć pod uwagę przestrzeń. Może zawierać tekstowy opis szczegółów procesu. |
|
Pasek informacji | Obsługa komunikatów skojarzona z kontekstowym interfejsem użytkownika. Zobacz Paski informacji. | Nie używaj wielu pasków informacyjnych, jeśli musisz wskazać wiele procesów. Zamiast tego użyj skumulowanych pasków postępu. |
Okno wyniku | Powiadomienie przejściowe: proces na poziomie aplikacji, który użytkownik będzie chciał przejrzeć szczegóły po zakończeniu. | Nie używaj informacji, które muszą być utrwalane między sesjami. |
Plik dziennika | W przypadku, gdy ważne jest zapisanie szczegółów po zakończeniu, w połączeniu z nieprzejętnym powiadomieniem. | |
Pasek stanu | Powiadomienie przejściowe: proces na poziomie aplikacji, którego użytkownik nie będzie potrzebował szczegółów po zakończeniu. Zawiera osadzony pasek postępu. Może zawierać tekstowy opis szczegółów procesu. |
Typy wskaźników postępu
Paski postępu
Nieokreślony
Nieokreślony pasek postępu
"Nieokreślone" oznacza, że nie można określić ogólnego postępu operacji lub procesu. Użyj nieokreślonych pasków postępu dla operacji, które wymagają niezwiązanego czasu lub mają dostęp do nieznanej liczby obiektów. Użyj tekstowego opisu, aby towarzyszyć temu, co się dzieje. Użyj limitów czasu, aby nadać ograniczenia operacjom opartym na czasie. Nieokreślone paski postępu używają animacji, aby pokazać, że postęp jest poczyniony, ale nie podaj żadnych innych informacji. Nie wybieraj nieokreślonego paska postępu tylko na podstawie możliwego braku dokładności.
Zdeterminowany
Określanie paska postępu
"Determinate" oznacza, że operacja lub proces wymaga ograniczonego czasu, nawet jeśli nie można dokładnie przewidzieć tego czasu. Wyraźnie wskazuje ukończenie. Nie pozwól, aby pasek postępu przechodził do 100 procent, chyba że operacja została ukończona. Określanie animacji paska postępu przesuwa się od lewej do prawej od 0 do 100%.
Nigdy nie przesuwaj wskaźnika postępu do tyłu podczas operacji. Pasek powinien iść do przodu stale po rozpoczęciu operacji i osiągnąć 100% po zakończeniu. Punktem paska postępu jest nadanie użytkownikowi pojęcia, jak długo trwa cała operacja, niezależnie od tego, ile kroków jest zaangażowanych.
Raportowanie współbieżne (skumulowane paski postępu)
Jeśli operacja potrwa długo — być może kilka minut — może być używane dwa paski postępu, jeden, który pokazuje ogólny postęp operacji, a drugi dla postępu bieżącego kroku. Jeśli na przykład program instalacyjny kopiuje wiele plików, jeden pasek postępu może służyć do wskazania, jak długo trwa cały proces, a drugi może wskazywać, jaki procent bieżącego pliku lub katalogu jest kopiowany. Nie zgłaszaj więcej niż pięciu współbieżnych operacji ani procesów przy użyciu skumulowanych pasków postępu. Jeśli masz więcej niż pięć współbieżnych operacji lub procesów do raportowania, użyj modalnego okna dialogowego z przyciskiem Anuluj i zgłoś szczegóły postępu do okna Dane wyjściowe.
Opisy tekstowe
Użyj tekstowego opisu, aby towarzyszyć temu, co się dzieje i szacowanym czasie ukończenia. Jeśli nie można określić, jak długo trwa operacja, lepszym wyborem do przekazywania opinii może być animowana ikona, a nie pasek postępu.
Program Visual Studio udostępnia standardowy pasek postępu na pasku stanu, który może być używany przez dowolny produkt zintegrowany z programem Visual Studio. W przypadku tekstowych opisów tego, co się dzieje, gdy pasek postępu jest animowany, można zaktualizować tekst paska stanu.
Inne wskaźniki postępu
Mrówki (animowane kropki poziome)
"Ants", animowane kropki poziome, stanowią wizualne odwołanie do nieokreślonego procesu serwera w obie strony.
Pokrętło (pierścień postępu)
Pokrętło (nazywane również "pierścieniem postępu") jest nieokreślonym wskaźnikiem postępu używanym głównie w odniesieniu do kontekstowego interfejsu użytkownika. Umożliwia wyświetlenie pokrętła w bliskiej odległości od powiązanej zawartości, takiej jak nagłówek kategorii tekstowej, obsługa komunikatów lub kontrolka.
Opinie dotyczące kursora
W przypadku operacji, które zajmują od 2 do 7 sekund, prześlij opinię kursora. Zazwyczaj oznacza to użycie kursora oczekiwania dostarczonego przez system operacyjny. Aby uzyskać wskazówki, zobacz artykuł Cursors.Wait, właściwość Cursors.Wait.
Lokalizacje wskaźnika postępu
Pasek stanu
Pasek stanu udostępnia aplikacji miejsce do wyświetlania komunikatów i przydatnych informacji dla użytkownika bez przerywania pracy użytkownika. Zazwyczaj wyświetlany w dolnej części okna stan postępu będzie okienkiem porad narzędzia zawierającym komunikat o mierze postępu w połączeniu ze wskaźnikiem paska postępu.
Pasek stanu z paskiem postępu
Pasek stanu z opisem tekstowym
Pasek informacji
Podobnie jak na pasku stanu, pasek informacji zawiera kontekstowe powiadomienia i komunikaty, które mogą być również sparowane z nieokreślonymi wskaźnikami postępu, takimi jak pasek postępu lub pokrętło. Pasek informacji nie powinien zapewniać szczegółowego postępu na poziomie ani określać wskazania postępu. Zobacz Paski informacji.
Pasek informacji z paskiem postępu i opisem tekstowym
W tekście
Wbudowane wskazanie postępu może być reprezentowane przez dowolne typy modułu ładującego postępu. Zazwyczaj wskaźnik postępu jest sparowany z obsługą komunikatów, ale nie jest to wymagane.
Pokrętło połączone z opisem tekstowym
Określanie skumulowanych pasków postępu
Tekst wbudowany Eksploratora serwera: Trwa odświeżanie...
Okna narzędzi
Globalne wskazanie postępu jest reprezentowane przez nieokreślony pasek postępu umieszczony bezpośrednio poniżej paska narzędzi.
Globalny pasek postępu w programie Team Explorer
Dialogi
Okna dialogowe mogą zawierać dowolne typy modułu ładującego postępu. Wskaźniki postępu mogą być sparowane z obsługą komunikatów, a także w połączeniu z wieloma poziomami wskazania postępu w celu reprezentowania procesów szczegółowych i podrzędnych.
Okno dialogowe programu Visual Studio z współbieżnymi procesami i wieloma typami wskaźników postępu
Okno dialogowe programu Visual Studio z modułem ładującym postępu i obsługą komunikatów w tekście
Dokument — dobrze
Dokument może wyświetlać wiele typów modułu ładującego postępu w połączeniu z kontrolkami.
Nieokreślony pasek postępu poniżej paska narzędzi
Okno wyniku
Okno Dane wyjściowe jest odpowiednie do obsługi postępu procesu i bieżącego stanu postępu za pośrednictwem wbudowanych komunikatów tekstowych. Należy użyć paska Stan wraz z dowolnym raportowaniem postępu okna danych wyjściowych.
Okno danych wyjściowych ze stanem bieżącego procesu i komunikatami oczekiwania
Paski informacji
Paski informacji zapewniają użytkownikowi wskaźnik zbliżony do ich punktu uwagi i używanie udostępnionego formantu paska informacji zapewnia spójność wyglądu wizualnego i interakcji.
Paski informacji w programie Visual Studio
Odpowiednie zastosowania dla paska informacji
Aby nadać użytkownikowi komunikat nieblokujących, ale ważny dla bieżącego kontekstu
Aby wskazać, że interfejs użytkownika znajduje się w określonym stanie lub stanie, który niesie ze sobą pewne konsekwencje interakcji, takie jak debugowanie historyczne
Aby powiadomić użytkownika, że system wykrył problemy, na przykład gdy rozszerzenie powoduje problemy z wydajnością
Aby zapewnić użytkownikowi sposób łatwego wykonywania akcji, na przykład gdy edytor wykryje, że plik ma mieszane karty i spacje
Zalecenia:
Pozostaw krótki tekst komunikatu paska informacji i do punktu.
Zachowaj zwięzłość tekstu na linkach i przyciskach.
Upewnij się, że opcje "akcji" podane dla użytkowników są minimalne, pokazując tylko wymagane akcje.
Nie:
Użyj paska informacji, aby oferować standardowe polecenia, które powinny zostać umieszczone na pasku narzędzi.
Użyj paska informacji zamiast modalnego okna dialogowego.
Utwórz przestawny komunikat poza oknem.
Użyj wielu pasków informacyjnych w kilku lokalizacjach w tym samym oknie.
Czy w tym samym czasie może być wyświetlanych wiele pasków informacji?
Tak, wiele pasków informacji może być wyświetlanych jednocześnie. Będą one wyświetlane w pierwszej kolejności, pierwszy obsługiwany z pierwszym paskiem informacyjnym wyświetlanym u góry i dodatkowymi paskami informacyjnymi wyświetlanymi poniżej.
Użytkownik będzie widzieć maksymalnie trzy paski informacji jednocześnie, po czym, jeśli są dostępne więcej pasków informacji, region paska informacji stanie się przewijany.
Tworzenie paska informacji
Pasek informacyjny zawiera cztery sekcje od lewej do prawej:
Ikona: w tym miejscu należy dodać dowolną ikonę, którą chcesz wyświetlić dla paska informacji, na przykład ikonę ostrzeżenia.
Tekst: możesz dodać tekst, aby opisać scenariusz/sytuację, w której znajduje się użytkownik, wraz z linkami w tekście, jeśli jest to wymagane. Pamiętaj, aby zachować zwięzłość tekstu.
Akcje: ta sekcja powinna zawierać linki i przyciski dla akcji, które użytkownik może wykonać na pasku informacji.
Przycisk Zamknij: ostatnia sekcja po prawej stronie może mieć przycisk zamknięcia.
Tworzenie standardowego paska informacji w kodzie zarządzanym
Klasa InfoBarModel może służyć do tworzenia źródła danych dla paska informacji. Użyj jednego z tych czterech konstruktorów:
public InfoBarModel(IEnumerable<IVsInfoBarTextSpan> textSpans, ImageMoniker image = default(ImageMoniker), bool isCloseButtonVisible = true);
public InfoBarModel(string text, ImageMoniker image = default(ImageMoniker), bool isCloseButtonVisible = true);
public InfoBarModel(IEnumerable<IVsInfoBarTextSpan> textSpans, IEnumerable<IVsInfoBarActionItem> actionItems, ImageMoniker image = default(ImageMoniker), bool isCloseButtonVisible = true);
public InfoBarModel(string text, IEnumerable<IVsInfoBarActionItem> actionItems, ImageMoniker image = default(ImageMoniker), bool isCloseButtonVisible = true);
Oto przykład, który tworzy element InfoBarModel z tekstem z hiperlinkiem, przyciskiem akcji i ikoną.
var infoBar = new InfoBarModel(
textSpans: new[]
{
new InfoBarTextSpan("This is a "),
new InfoBarHyperlink("hyperlink"),
new InfoBarTextSpan(" InfoBar.")
},
actionItems: new[]
{
new InfoBarButton("Click Me")
},
image: KnownMonikers.StatusInformation,
isCloseButtonVisible: true);
Tworzenie standardowego paska informacji w kodzie natywnym
Zaimplementuj interfejs IVsInfoBar, aby zapewnić pasek informacji z kodu natywnego.
public interface IVsInfoBar
{
IVsInfoBarActionItemCollection ActionItems { get; }
ImageMoniker Image { get; }
bool IsCloseButtonVisible { get; }
IVsInfoBarTextSpanCollection TextSpans { get; }
}
Pobieranie elementu UIElement paska informacji z paska informacji
Implementacja elementu InfoBarModel lub IVsInfoBar to modele danych, które należy przekształcić w element UIElement, aby można je było wyświetlić w interfejsie użytkownika. Element UIElement można pobrać za pomocą usługi SVsInfoBarUIFactory/IVsInfoBarUIFactory.
private bool TryCreateInfoBarUI(IVsInfoBar infoBar, out IVsInfoBarUIElement uiElement)
{
IVsInfoBarUIFactory infoBarUIFactory = serviceProvider.GetService(typeof(SVsInfoBarUIFactory)) as IVsInfoBarUIFactory;
if (infoBarUIFactory == null)
{
uiElement = null;
return false;
}
uiElement = infoBarUIFactory.CreateInfoBar(infoBar);
return uiElement != null;
}
Umieszczenie
Paski informacji mogą być wyświetlane w co najmniej jednej z następujących lokalizacji:
Okna narzędzi
Na karcie dokumentu
Ważne
Można umieścić pasek informacyjny, aby przekazać komunikat o kontekście globalnym. Będzie to widoczne między paskami narzędzi a dzielnym dokumentem. Nie jest to zalecane, ponieważ powoduje to problemy z "skokiem i szarpnięciem" środowiska IDE i należy unikać, chyba że jest to absolutnie konieczne i odpowiednie.
Umieszczanie paska informacji w narzędziuWindowPane
Metoda ToolWindowPane.AddInfoBar(IVsInfoBar) może służyć do dodawania paska informacji do okna narzędzi. Ten interfejs API może dodać pasek IVsInfoBar (z którego model InfoBarModel jest domyślną implementacją) lub element IVsUIElement.
Umieszczanie paska informacji w dokumencie lub innym niż ToolWindowPane
Aby umieścić pasek informacji w dowolnym obiekcie IVsWindowFrame, użyj właściwości VSFPROPID_InfoBarHost, aby pobrać element IVsInfoBarHost dla ramki, a następnie dodaj element UIElement paska informacji.
private void AddInfoBar(IVsWindowFrame frame, IVsUIElement uiElement)
{
IVsInfoBarHost infoBarHost;
if (TryGetInfoBarHost(frame, out infoBarHost))
{
infoBarHost.AddInfoBar(uiElement);
}
}
private bool TryGetInfoBarHost(IVsWindowFrame frame, out IVsInfoBarHost infoBarHost)
{
object infoBarHostObj;
if (ErrorHandler.Failed(frame.GetProperty((int)__VSFPROPID7.VSFPROPID_InfoBarHost, out infoBarHostObj)))
{
infoBarHost = null;
return false;
}
infoBarHost = infoBarHostObj as IVsInfoBarHost;
return infoBarHost != null;
}
Umieszczanie paska informacji w oknie głównym
Aby umieścić pasek informacyjny w oknie głównym, użyj VSSPROPID_MainWindowInfoBarHost usługi IVsShell, aby uzyskać do niego element IVsInfoBarHost okna głównego, a następnie dodaj do niego element UIElement paska informacji.
Czy będę wiedzieć, kiedy użytkownik podejmuje akcję na pasku informacyjnym?
Tak, zwrócimy każdą akcję zdarzenia do autora paska informacji. Następnie do autora paska informacji należy wykonać akcję w środowisku IDE na podstawie wyboru użytkownika na pasku informacyjnym. Paski informacji zostaną automatycznie usunięte z hosta, którego przycisk Zamknij został kliknięty, ale dodatkowa praca jest wymagana, jeśli inne paski informacji muszą zostać usunięte po zamknięciu. Telemetria musi być również rejestrowana niezależnie przez każdy pasek informacyjny.
Odbieranie zdarzeń paska informacji w narzędziuWindowPane
ToolWindowPane ma dwa zdarzenia dla pasków informacji. Zdarzenie InfoBarClosed jest zgłaszane po zamknięciu paska informacji w narzędziuWindowPane. Zdarzenie InfoBarActionItemClicked jest wywoływane po kliknięciu hiperłącza lub przycisku na pasku informacji.
Odbieranie zdarzeń paska informacji bezpośrednio z elementu UIElement
IVsInfoBarUIElement.Advise może służyć do subskrybowania zdarzeń bezpośrednio z elementu UIElement paska informacji. Implementowanie interfejsów IVsInfoBarUIEvents umożliwi autorowi odbieranie zdarzeń zamknięcia i kliknięcia.
public interface IVsInfoBarUIEvents
{
void OnActionItemClicked(IVsInfoBarUIElement infoBarUIElement, IVsInfoBarActionItem actionItem);
void OnClosed(IVsInfoBarUIElement infoBarUIElement);
}
Sprawdzanie poprawności błędu
Gdy użytkownik wprowadza informacje, które nie są akceptowalne, na przykład gdy wymagane pole jest pomijane lub gdy dane są wprowadzane w nieprawidłowym formacie, lepiej jest użyć weryfikacji kontroli lub opinii w pobliżu kontrolki, zamiast używać okna dialogowego blokującego błędu wyskakującego.
Sprawdzanie poprawności pól
Walidacja formularza i pola składa się z trzech składników: kontrolki, ikony i etykietki narzędzia. Chociaż można użyć kilku typów kontrolek, pole tekstowe będzie używane jako przykład.
Jeśli pole jest wymagane, powinien istnieć tekst znaku wodnego z informacją <Wymagane> , a tło pola powinno być jasnożółte (VSColor: Environment.ControlEditRequiredBackground
) i pierwszy plan powinien być szary (VSColor: Environment.ControlEditRequiredHintText
):
Program może określić, że kontrolka jest w stanie nieprawidłowej zawartości wprowadzonej, gdy fokus zostanie przeniesiony do innej kontrolki lub gdy użytkownik kliknie przycisk zatwierdzenia [OK] lub gdy użytkownik zapisze dokument lub formularz.
Po ustaleniu nieprawidłowego stanu zawartości ikona pojawi się wewnątrz kontrolki lub obok niej. Etykietka narzędzia opisująca błąd powinna pojawić się po umieszczeniu wskaźnika myszy na ikonie lub kontrolce. Ponadto wokół kontrolki, która tworzy nieprawidłowy stan, powinna pojawić się obramowanie o rozmiarze 1 pikseli.
Specyfikacje układu dotyczące walidacji pola
Dopuszczalne odmiany lokalizacji ikon
Istnieje niezliczona liczba unikatowych przypadków, w których użytkownicy muszą być informowani o błędach walidacji. Biorąc pod uwagę typ sterowania i konfigurację interfejsu użytkownika, wybierz położenie ikony odpowiednie dla Danej sytuacji.
Dopuszczalne odmiany lokalizacji ikon walidacji pól
Walidacja wymagająca połączenia okrężnego z serwerem lub połączeniem sieciowym
W niektórych przypadkach wymagana jest runda na serwerze w celu zweryfikowania zawartości i ważne byłoby, aby pokazać postęp użytkownika, zweryfikowany i stan błędu. Na poniższej ilustracji przedstawiono przykład tego przypadku i zalecany interfejs użytkownika.
Walidacja obejmująca rundę na serwerze
Należy pamiętać, że odpowiednie dostępne miejsce na prawo od kontroli musi być zapewnione, aby pomieścić "Weryfikowanie..." i tekst "Ponów próbę".
Tekst ostrzegawczy w miejscu
Jeśli jest dostępne miejsce, aby umieścić komunikat o błędzie w pobliżu kontrolki w stanie błędu, zaleca się użycie samej etykietki narzędzia.
Tekst ostrzegawczy w miejscu
Znaki wodne
Czasami cała kontrolka lub okno jest w stanie błędu. W takiej sytuacji użyj znaku wodnego, aby wskazać błąd.
Walidacja pola limitu