Po krótkiej świątecznej przerwie, powracamy do cyklu “Co w WPF piszczy”. Dziś na warsztat pójdą ostatnie kontrolki z kategorii ItemsControls – TreeView, Toolbar oraz Statusbar.

TreeView

TreeView to drzewko :-). W XAML’u tworzy je się podobnie do kontrolki Menu.

<TreeView>

    <TreeViewItem Header=”C:\”>

        <TreeViewItem Header=”autoexec.bat” />

        <TreeViewItem Header=”config.sys” />

        <TreeViewItem Header=”Temp”>

            <TreeViewItem Header=”EA6111C2-5B8D-41f7-A2BA-A932D569DDD2″ />

        TreeViewItem>

    TreeViewItem>

TreeView>

Sterować elementami możemy poprzez cztery właściwości: Expanded, Collapsed, Selected, UnSelected.

Toolbar

Definicja Toolbar’a to również prosta sprawa.

<ToolBar>

    <Button>

        <Image Source=”warning.png” />

    Button>

    <Label>ZoomLabel>

    <ComboBox SelectedIndex=”0″>

        <ComboBoxItem>100%ComboBoxItem>

        <ComboBoxItem>50%ComboBoxItem>

        <ComboBoxItem>25%ComboBoxItem>

    ComboBox>

ToolBar>

Kontrolki umieszczone w elemencie Toolbar wyglądają troszkę inaczej niż standardowo. Kontrolkę tę można umieścić bezpośrednio w formie, ale lepiej się do tego nadaje obiekt ToolbarTray. Przechowuje on kolekcję elementów Toolbar i jeśli atrybut ToolbarTray.IsLocked nie jest ustawiony na true umożliwia ona reorganizację elementów. w przypadku, gdy lista elementów jest zbyt długa, możemy sprawić, aby elementy zostały umieszczone w tzn. OverflowArea. Robimy to poprzez ustawienia na elementach właściwości Toolbar.OverflowMode na Always, AsNeeded, Never.

StatusBar

StatusBar to belka (zwykle) umieszczona przy dolnej krawędzi naszej aplikacji. Definiujemy ją podobnie jak pozostałe omówione tu kontrolki.

<StatusBar>

    <Label>102 ElementyLabel>

    <Separator />

    <Button Content=”Paste” />

StatusBar>

Nie ma tu też żadnej magii. Prostota.

Na tym zakończymy omawianie kontrolek ItemsControls. Jest jeszcze kilka nieomówionych typów kontrolek (ProgressBar, Slider, TextBox, RichTextBox itp.), ale zostawię je na inny termin. W następnej lekcji przejdziemy do Select and configure Layout panels.