Kolejna kontrolki z kolekcji ItemControls to TabControl oraz Menu

TabControl

Utworzyć ją można w banalny sposób:

<TabControl>

    <TabItem Header=”Tab 1″>Content 1TabItem>

    <TabItem Header=”Tab 2″>Content 2TabItem>

    <TabItem Header=”Tab 3″>Content 3TabItem>

TabControl>

Od razu możemy zobaczyć jak możemy nazwać nasze Tab’y. Za pomocą właściwości TabStripPlacement możemy ustawić miejsce, gdzie będą wyświetlane karty – Bottom, Top, Left i Right

Menu

Menu tworzymy używając tagów Menu oraz MenuItem:

<Menu>

    <MenuItem Header=”_Plik”>

       <MenuItem Header=”_Nowy” />

       <MenuItem Header=”_Otwórz” />

       <Separator />

       <MenuItem Header=”_Koniec” />

    MenuItem>

    <MenuItem Header=”_Edycja”>

       <MenuItem Header=”_Skopiuj” />

       <MenuItem Header=”_Wytnij” />

       <MenuItem Header=”W_klej” />

    MenuItem>

    <MenuItem Header=”P_omoc” />

Menu>

Za pomocą znaku ‘_’ zaznaczamy literę, która będzie umożliwiać wywołanie danego polecenia za pomocą kombinacji ALT + znak. Dostępny jest też element separatora. Element MenuItem posiada, kilka właściwości, które są użyteczne przy konfigurowaniu wyglądu i działania.

  • Icon – umożliwia zdefiniowanie ikony, która pojawi się przy danej pozycji w menu
  • IsCheckable – pozwala zaznaczać i odznaczać dany element w Menu
  • InputGestureText – pozwala dodać tekst, skrótu klawiaturowego skojarzonego z daną pozycją Menu

W przypadku InputGestureText, należy zaznaczyć ich jest to tylko tekst. Aby skojarzyć InputGesture z pozycją w Menu należy posłużyć się opisanym mechanizmem komend.

Dodatkowo wszystko to ukraszone kilkoma zdarzeniami: Checked, Unchecked, SubmenuOpened, SubmenuClosed oraz Click.

Ciekawostka: Jeśli chcesz, możesz sprawić aby menu wyświetliło swoje elementy pionowo:

<Menu.ItemsPanel>

    <ItemsPanelTemplate>

        <StackPanel />

    ItemsPanelTemplate>

Menu.ItemsPanel>

ContextMenu

Jest to w zasadzie normalna kontrolka menu, zdefiniowana wewnątrz innego obiektu:

<StackPanel.ContextMenu>

    <ContextMenu>ContextMenu>

StackPanel.ContextMenu>

ContextMenu definiuje właściwość IsOpen i zdarzenia Opened, Closed.

Dodatkowo ContextMenuService definiuje kilka właściwości dzięki, którym możemy zmodyfikować działanie menu kontekstowego – takie jak: DropOnShadow, ShowOnDisabled, Placement.

Następnym razem kolejne kontrolki – TreeView, ToolBar oraz StatusBar.