piątek, 4 maja 2012

70-511 Rozdział 1 - Tworzenie interfejsu użytwkownika - kontrolki zaawansowane

W tej części zajmiemy się kontrolkami, mogącymi przechowywać wiele elementów.

ListBox
Kontrolka zaprojektowana aby wyświetlać listy, której elementy są typu ListBoxItem. Kontrolka automatycznie dodaje potrzebne paski przewijania jeżeli są potrzebne. Domyślnie można zaznaczyć tylko jeden element na liście, ustawiając właściwość SelectionMode można uzyskać dodatkowe możliwości:
  • Single - domyślna wartość - zaznaczanie pojedynczego elementu
  • Multiple - możliwość zaznaczenia wielu elementów
  • Extended - użytkownik może zaznaczyć kilka sąsiadujących elementów za pomocą klawisza Shift, lub kilka niesąsiadujących za pomocą klawisza CTRL.

ComboBox
Kontrolka różni się od poprzedniej tylko sposobem prezentacji elementów - jest to rozwijana lista z której wybieramy elementy. Listę możemy otworzyć z poziomu kodu ustawiając właściwość IsDropDownOpen na True.


TreeView i TreeViewItem
Pozwala na wyświetlanie list w postaci drzewiastej. Kontrolka TreeViewItem służy do tworzenia struktury drzewa i posiada takie właściwości jak:
Referencję do aktualnie zaznaczonego elementu w drzewie możemy pobrać za pomocą właściwości SelectedItem.


Menu, MenuItem i Separator
Wyświetla kontrolki typu MenuItem. Menu posiada właściwość IsMainMenu która po ustawieniu na True powoduje że naciśnięcie Alt + F10 ustawi aktywność na nim. Podstawowe właściwości MenuItem:
  • Command - komenda przypisana do danej pozycji menu
  • Header - Wyświetlany text w menu
  • Icon - ikona pozycji w menu
  • IsChecked - pokazuje zaznaczanie/odznaczenie po lewej stronie menu
  • Items - lista kontrolek MenuItem przypisanych do danej pozycji Menu
Aby dodać separator wystarczy użyć kontrolki Separator:


Code:
        <Menu>
            <MenuItem Header="_Plik">
                <MenuItem Header="Dodaj"/>
                <Separator/>
                <MenuItem Header="Zamknij"/>
            </MenuItem>
        </Menu>



ContextMenu
Menu kontekstowe skojarzone jest z konkretną kontrolką. Pojawia się po wciśnięciu prawego przycisku myszy bądź po naciśnięciu Shift+F10. Przykład definicji:


Code:
        <ListBox>
            <ListBox.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="Wytnij" />
                    <MenuItem Header="Kopiuj" />
                    <MenuItem Header="Wklej" />
                </ContextMenu>
            </ListBox.ContextMenu>
        </ListBox>


ToolBar
Kontrolka świetnie nadająca się do umieszczania popularnych komend w postaci przycisków, check-boxów oraz labeli. Ważną właściwością jest ToolBar.OverflowMode, która decyduje w jaki sposób mają być wyświetlane kontrolki które się na nim nie mieszczą:
  • OverflowMode.Always - wyświetla z boku indykator, że są jeszcze inne polecenia do wyboru
  • OverflowMode.AsNeeded - wyświetla indykator tylko wtedy kiedy kontrolki faktycznie się nie mieszczą
  • OverflowMode.Never - dodatkowe komendy (które nie mieszczą się) nie będą dostępne
ToolBarTray - kontrolka ta umożliwia przemieszczanie toolbarów które się w niej znajdują.



StatusBar
Kontrolka używana w celu wyświetlania informacji o aktualnym stanie aplikacji (np. za pomocą Labela, ProgressBar itp)

Brak komentarzy:

Prześlij komentarz