| 8.3. Core Control Reference| Button | Hierarchy: UIElement  FrameworkElement  Control  ContentControl  ButtonBase | 
 
  <Button     Click="OnSubmitButtonClicked">     Button Label </Button>  
 or:  <Button     Click="OnSubmitButtonClicked"     Content="Button Label" />  
 <Button .../> displays a push button. Attributes 
 Click (optional)This attribute sets the name of the codebehind handler that executes when the button is clicked.
 Content (optional)This attribute sets the value that is displayed on the button. EventsClick | CheckBox | Hierarchy: UIElement  FrameworkElement  Control  ContentControl  ButtonBase  ToggleButton | 
 
  <CheckBox     IsChecked="true|false"     Content="This box is checked"     IsCheckedChanged="OnCheckedChangedEvent" />  
 or:  <CheckBox     IsChecked="true|false"     IsCheckedChanged="OnCheckedChangedEvent">         This is a checkbox label </CheckBox>  
 <CheckBox .../> displays a checkbox. Attributes 
 Click (optional)This attribute sets the name of the codebehind handler that executes when the button is clicked.
 Content (optional)This attribute describes the element that is displayed next to the CheckBox. This is usually a text-based value, but can be any single UIElement.
 IsChecked (optional)This attribute sets the initial state of the checkbox.  
 trueThe CheckBox is checked.
 falseThe CheckBox is not checked. This is the default.
 IsCheckedChanged (optional)This attribute sets the name of the codebehind handler that executes when the checkbox changes state. EventsClick IsCheckedChanged | ComboBox | Hierarchy: UIElement  FrameworkElement  Control  ItemsControl  Selector | 
 
  <ComboBox     IsEditable="true|false"     IsSelectionRequired="true|false"     SelectionChanged="SelectionChangedHandler"> </ComboBox>  
 <ComboBox .../> displays a selection control in a drop-down list form. A ComboBox is a container for ComboBoxItems. Attributes 
 IsEditable (optional)This attribute determines whether users can edit the ComboBoxItems. If it is true, the user can type in the ComboBox as though it were a text field.  
 trueThe items are editable by the user.
 falseThe items are not editable.
 IsSelectedRequired (optional)This attribute determines whether the first ComboBoxItem will be selected when the control is initially drawn.  
 trueThe ComboBox will be displayed with an empty selection.
 falseThe first ComboBoxItem will be initially selected.
 SelectionChanged (optional)This attribute sets the name of the codebehind handler that executes when the selection changes. EventsSelectionChanged | ContextMenu | Hierarchy: UIElement  FrameworkElement  Control  ItemsControl  MenuBase | 
 
  <ContextMenu     Opened="OpenedHandler"     Closed="ClosedHandler" />  
 <ContextMenu .../> represents a menu control containing a contextually accurate pop-up menu for the control to which it is attached. ContextMenu is a container for a collection of MenuItem elements and must be nested within another control. ContextMenu is automatically placed inside a Popup element. Example of a fully defined ContextMenu:  ContextMenu Opened="OpenedHandler Closed="ClosedHandler">      <MenuItem Header="File"/>      <MenuItem Header="Save"/>      <MenuItem Header="SaveAs"/>      <MenuItem Header="Recent Files">         <MenuItem Header="Readme.txt"/>         <MenuItem Header="Schedule.xls"/>      </MenuItem> </ContextMenu>  
 Attributes 
 Closed (optional)This attribute sets the name of the codebehind handler that executes when the ContextMenu closes.
 Opened (optional)This attribute sets the name of the codebehind handler that executes when the ContextMenu opens. EventsClosed Opened | DocumentViewer | Hierarchy: UIElement  FrameworkElement  Control | 
 
  <DocumentViewer     FirstVisiblePage="0" // 0 based integer     GridColumnCount="1" // sets the number of columns in the viewer     HorizontalOffset="0.5" // Double, ele scrolls to value     HorizontalPageSpacing="2" // Double, space between pages     IsToolBarMaximized="true|false"     ShowPageBorders="true|false"     VerticalOffset="2" // double, sets vert scroll     VerticalPageSpacing="10" // vert page spacing     ZoomPercentage="5.0 ... 5000.0" //default 100.0 />  
 <DocumentViewer .../> implements a control that allows users to view paginated documents in a fixed or flow format. It may contain only child elements of either FlowDocument or FixedDocument. Attributes 
 FirstVisiblePage (optional)This attribute is a zero-based Integer indicating the first visible page of content. This value must be non-negative. Setting this value causes the DocumentViewer to load the specified page and scroll to the top if necessary.
 GridColumnCount (optional)This Integer value represents the number of grid columns in the DocumentViewer. The value must be non-negative and cannot be greater than the total page count.
 HorizontalOffset (optional)This Double value represents the horizontal scroll position in 1/96". It must be non-negative.
 HorizontalPageSpacing (optional)This Double value specifies the amount of horizontal space between pages. It must be non-negative. The default value is 10.0.
 IsToolBarMaximized (optional)This attribute determines whether the DocumentViewer toolbar is visible or hidden.  
 trueThe toolbar is visible. This is the default.
 falseThe toolbar is hidden.
 ShowPageBorders (optional)
 VerticalOffset (optional)This Double value represents the vertical scroll position in 1/96". It must be non-negative.
 VerticalPageSpacing (optional)This Double value specifies the amount of vertical space between pages. It must be non-negative. The default value is 10.0.
 ZoomPercentage (optional)This attribute is a Double value between 5.0 and 5000.0 that represents the zoom percentage. The default value is 100.0. Attached Attributes 
 ContentHostThe ContentHost for a DocumentViewer must be a ScrollViewer. The attribute is a Boolean that marks the ScrollViewer as the ContentHost:  <ScrollViewer DocumentViewer.ContentHost="true|false" />  
 | Expander | Hierarchy: UIElement  FrameworkElement  Control  ContentControl  HeaderedContentControl | 
 
  <Expander     IsExpanded="true|false"     Header="this is an Expander"     Content="content"/>  
 or:  <Expander     IsExpanded="true|false"     Header="this is an Expander">        Content string </Expander>  
 <Expander . . . /> allows a user to collapse an element to show only the header, or to expand it to show more content. An Expander object may contain only one child element, but there are no limitations on how many children that element may have. Figure 8-1 shows the result of evaluating Example 8-5 in XamlPad and shows the Expander both closed (on the left) and open (on the right). Figure 8-1. An Expander in collapsed state and fully expanded 
 Attributes 
 Content (optional)The value of this attribute will be displayed when the Expander state is expanded and hidden when the Expander state is collapsed.
 IsExpanded (optional)This attribute sets the initial state of the Expander.  
 trueThe initial state is open.
 falseThe initial state is closed.
 Header (optional)The value of this attribute will be displayed in the header area. | Hyperlink | Hierarchy: DependencyObject  FrameworkContentElement  TextElement  Inline | 
 
  <Hyperlink     NavigateUri="Page2.xaml">Next Page </Hyperlink>  
 <Hyperlink .../> displays a hyperlink. A Hyperlink is a mechanism used to load a new page or to navigate to an inline section of a document. This element can only be included where text is allowed, e.g., within a TextBlock or Label object. It cannot be defined as a standalone or root element. Navigating to an inline section of a document uses the same syntax as linking to an anchor in an HTML document:  <Hyperlink NavigateUri="#paragraph3">Paragraph 3</Hyperlink>  
 Attributes 
 Click (optional)This attribute sets the name of the codebehind handler that executes when the element is clicked.
 NavigateUri (required)This attribute loads the page designated by the hyperlink or navigates to the appropriate place within a document. EventsClick | ListBox | Hierarchy: UIElement  FrameworkElement  Control  ItemsControl  Selector | 
 
  <ListBox      SelectionChanged="SelectionChangedHandler"      SelectionMode="Single|Multiple|Extended" />  
 <ListBox .../> is a control that implements a list of selectable items. Like ComboBox, ListBox is a container for other elements, namely ListBoxItem. (See Example 8-6.) Attributes 
 SelectionChanged (optional)This attribute sets the name of the codebehind handler that executes when the selection changes.
 SelectionMode (optional)This attribute determines how items are selected.  
 ExtendedMultiple items may be selected in groups by using the Shift key with either the mouse or the arrow keys.
 MultipleMultiple items may be selected.
 SingleA single item may be selected. EventsSelectionChanged | MediaElement | Hierarchy: UIElement  FrameworkElement | 
 
  <MediaElement     Source="c:\\media  \\mymedia.wmv"     Stretch="Fill|None|Uniform|UniformFill"     StretchDirection="Both|DownOnly|UpOnly"/>  
 <MediaElement .../> provides a mechanism for including media resources, such as video, in a XAML interface. Attributes 
 Source (optional)A MediaTimeline (detailed in Chapter 11) describing the source video. | |  | MediaTimeline requires an absolute path to the media source. | 
 | 
 
  
 Stretch (optional)Determines how the MediaElement will be drawn.  
 FillThe content is stretched to fill the destination. Aspect ratio is not preserved.
 NoneThe content's original size is preserved.
 UniformContent is resized to fit the destination. Aspect ratio is preserved.
 UniformFillContent is resized to fit the destination. Aspect ratio is preserved. If the resized content overflows the destination, it is clipped.
 StretchDirection (optional)Determines how content is stretched to fit the Viewbox.  
 BothContent is stretched to fit the Viewbox according to the Stretch attribute.
 DownOnlyContent is scaled downward if it is larger than the parent Viewbox.
 UpOnlyContent is scaled upward if it is smaller than the parent Viewbox. | Menu | Hierarchy: UIElement  FrameworkElement  Control  ItemsControl  MenuBase | 
 
  <Menu />  
 <Menu .../> defines a control that allows you to hierarchically represent commands. On its own, Menu has very little meaning and must contain child elements of type MenuItem to be useful. | MenuItem | Hierarchy: UIElement  FrameworkElement  Control  ItemsControl  HeaderedItemsControl | 
 
  <MenuItem     Header="File"     IsCheckedChanged="CheckedChangedHandler"     Click="ClickHandler"     IsChecked="true|false"     InputGestureText="Ctrl+X"     Command="ApplicationCommand"     Mode="Default|Separator|Checked" />  
 | |  | In the previous code block, Header is used to represent text. To use other elements for display, define the desired elements between the tags instead of using Header, e.g., <MenuItem ...><element .../></MenuItem>. | 
 | 
 
 <MenuItem .../> is used by both Menu and ContextMenu as a child element that represents menu options. MenuItem headers may be defined inline using the Header attribute or in context. MenuItem can be: Attributes 
 Click (optional)This attribute sets the name of the codebehind handler that executes when the MenuItem is clicked.
 Command (optional)This attribute is used to assign an application command to the menu item, which automatically assigns the command's associated input gesture to the object. This attribute must be one of the commands defined by the System.Windows.Input.ApplicationCommands class. For a full listing of these commands, see Appendix F.
 Header (optional)This attribute defines the visible text of the menu item that is displayed.
 InputGestureText (optional)This attribute describes the sequence of keystrokes that accesses this menu item. An example is Ctrl-X or Ctrl-Z. This text is displayed on the right side of the menu item as a user prompt. Figure 8-2 shows an example of declaring InputGestureText="Ctrl+N" and InputGestureText="Ctrl+X" for two separate instances of MenuItem.
 IsChecked (optional)This attribute sets the initial state of the MenuItem.  
 trueThe MenuItem is checked.
 falseThe MenuItem is not checked. Figure 8-2 shows the result of declaring <MenuItem Header= "Open" IsChecked= "true" />.
 IsCheckedChanged (optional)This attribute sets the name of the codebehind handler that executes when the MenuItem state changes from checked to unchecked, or vice versa.
 Mode (optional)This attribute defines the operational mode of the menu item.  
 CheckableThe menu item can be clicked, which toggles its checked state.
 DefaultThe menu item can be clicked. This is the default mode and is assigned if a mode is not explicitly declared.
 SeparatorThe menu item is a separator and cannot be clicked. Figure 8-2. A Menu with InputGestureText and IsChecked declared 
 EventsClickIsCheckedChanged | NavigationWindow | Hierarchy: UIElement  FrameworkElement  Control  ContentControl  Window | 
 
  <NavigationWindow     StartupUri="StartPage.xaml" />  
 <NavigationWindow .../> extends Window and adds standard back and forward web navigation capabilities. NavigationWindow is always created with a navigation "chrome," which contains the controls that allow a user to move forward and backward through the navigation stack. The navigation chrome is indicated in Figure 8-3 by the space containing the back and forward navigation arrows. Figure 8-3. Navigation chrome 
 Attributes 
 StartUri (required)Specifies the URI of the starting page | Page | Hierarchy: UIElement  FrameworkElement | 
 
  <Page     xmlns="http://schemas.microsoft.com/winfx/avalon/2005"     xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"     x:     Name="myWindow"     WindowHeight="400"     WindowWidth="400"     Text="Title of the Page"     WindowState="Maximized|Minimized|Normal"     <Page.Resources>      ...     </Page.Resources> </Page>  
 | |  | Note that x is replaceable both for Class and the namespace declaration. It refers to the XAML namespace (http://schemas.microsoft.com/winfx/xaml/2005), which must be included when using this method of reference . | 
 | 
 
 <Page .../> is a root-level element that can be used to set window properties and event handlers. Attributes 
 Name (optional)This attribute determines the name of the Page. Name must be set in order to access the element instance from codebehind functions.
 Resources (optional)This attribute determines a collection of Style, TRigger, and Storyboard.
 Text (optional)Sets the title of the Page. The default value is null; no title is displayed.
 WindowHeight (optional)This Double value specifies the height of the Page.
 WindowState (optional)This attribute determines the initial state of the window.  
 MaximizedThe Page starts maximized.
 MinimizedThe Page starts minimized.
 NormalThe Page starts at its specified dimensions.
 WindowWidth (optional)This Double value specifies the width of the Page.
 x:Class  (optional)This attribute defines the name of the codebehind class responsible for implementing event handlers. The namespace for this class is determined by the declaration of the WinFX XAML namespace. x may be replaced with any namespace reference you desire, as long as it matches the declaration of the codebehind class in which event handlers and other application logic will be implemented. If the declaration in XAML for the Page codebehind class is x:, then the associated C# codebehind file would appear as shown in Example 8-7. Example 8-7. Declaring a codebehind class for Page|  namespace XAML_Space {     public partial class Page1 : Page     {      // code goes here for page level event handlers     } } 
 | 
 | PasswordBox | Hierarchy: UIElement  FrameworkElement  Control | 
 
  <PasswordBox     MaxLength="0"     PasswordTextChanged="PasswordChangedHandler"     PasswordChar="*"     Password="MyPassword" />  
 <PasswordBox . . . /> implements a TextBox with special provisions for handling passwords. Attributes 
 MaxLength (optional)This attribute is an Integer value specifying the maximum length of the password. A 0 indicates there is no maximum. The default value is 0.
 Password (optional)This attribute is a SecureString representing the password to be displayed.
 PasswordChar (optional)This attribute is the Char displayed in place of typed characters in the password box. The default value is *.
 PasswordTextChanged (optional)This attribute describes the codebehind handler that executes when the Password-TextChanged event is raised. EventsPasswordTextChanged | Popup | Hierarchy: UIElement  FrameworkElement | 
 
  <Popup     Child="MyChild"     HasDropShadow="true|false"     HorizontalOffset="3"     IsOpen="true|false"     Placement="Absolute|AbsolutePoint|Top|Bottom|Right|Center|Left|Relative|                  RelativePoint|Mouse|MousePoint"     PlacementRectangle="0,0 5 10"     PlacementTarget="Target"     PopupAnimation="None|Fade|Scroll|Slide"     StaysOpen="true|false"     VerticalOffset="5"     CustomPopupPlacementCallback="CustomCallback"     Opened="OpenedHandler"     Closed="ClosedHandler" />  
 <Popup .../> creates a top-level window that displays content. It is not affected by styles or properties in the existing tree unless it is specifically bound to them. Attributes 
 Child (optional)This attribute sets the child element. Child elements can also be defined between the tags.
 Closed (optional)This attribute sets the name of the codebehind handler that executes when the Popup is closed.
 CustomPopupPlacementCallback (optional)This attribute identifies a codebehind callback function, which returns the placement for this element.
 HasDropShadow (optional)This attribute determines whether the Popup has a drop shadow.  
 trueThe element has a drop shadow.
 falseThe element does not have a drop shadow. This is the default.
 HorizontalOffset (optional)This attribute determines the offset of the Popup from the left. It is of type Double.
 IsOpen (optional)This attribute determines whether the Popup is visible.  
 trueThe element is visible.
 falseThe element is not visible.
 Opened (optional)This attribute sets the name of the codebehind handler that executes when the Popup is opened.
 Placement (optional)This attribute determines where the PopUp appears.  
 AbsoluteUses HorizontalOffset and VerticalOffset to position the Popup relative to the upper-left corner of the screen.
 AbsolutePointUses HorizontalOffset and VerticalOffset to position the Popup relative to the upper-left corner of the screen. If the Popup extends beyond the edges of the screen, it flips to the other side of the point.
 BottomPositions the Popup on the bottom edge of its parent, aligning left edges.
 CenterCenters the Popup over the parent.
 LeftPositions the Popup on the left side of the parent, aligning upper edges.
 MouseBehaves the same way as Bottom but uses the bounding box of the mouse cursor.
 MousePointBehaves the same way as RelativePoint, but its reference point is the tip of the mouse cursor.
 RelativeUses HorizontalOffset and VerticalOffset to position the Popup relative to the upper-left corner of the parent element.
 RelativePointUses HorizontalOffset and VerticalOffset to position the Popup relative to the upper-left corner of the parent element. If the popup extends beyond the edges of the screen, it flips to the other side of the point.
 RightPositions the Popup on the right side of the parent, aligning upper edges.
 TopPositions the Popup on the top edge of the parent, aligning left edges.
 PlacementRectangle (optional)If this attribute is null, then the Popup will be placed relative to its visual parent. If this attribute is set, then the Popup will be placed relative to the rectangle it describes. PlacementRectangle is of type Rect and can be expressed through markup as the top-left coordinate pair, height, and width, e.g., 5,5 10 10.
 PlacementTarget (optional)This attribute specifies the element used to calculate the position of the Popup as though it were the parent element.
 PopupAnimation (optional)This attribute specifies the animation used when the element opens.  
 FadeAnimates the opacity. The element appears to fade in.
 NoneNo animation is used.
 ScrollAnimates the height of the element.
 SlideAnimates the width and height at the same time.
 StaysOpen (optional)This attribute determines the automatic closure behavior of the Popup.  
 trueThe element stays open and must be closed programmatically.
 falseThe element automatically closes.
 VerticalOffset (optional)This attribute determines the offset of the Popup from the bottom. It is of type Double. EventsOpenedClosed | RadioButton | Hierarchy: UIElement  FrameworkElement  Control  ContentControl  ButtonBase  ToggleButton | 
 
  <RadioButton     IsChecked="true|false"     Content="Checked Radio Button"     IsCheckedChanged="CheckedChangedHandler"     Click="ClickHandler"/>  
 or:  <RadioButton     IsChecked="true|false"     IsCheckedChanged="CheckedChangedHandler"     Click="ClickHandler">     Checked Radio Button </RadioButton>  
 <RadioButton .../> displays a single button that can be selected but not deselected. To display a group of RadioButton elements, use RadioButtonList. Although the content of a RadioButton is usually text, any UIElement can be used, as demonstrated in Example 8-8. Figure 8-4 shows an example of several RadioButton elements using text, Button, and Ellipse as content. Figure 8-4. RadioButton using non-text content 
 Attributes 
 Click (optional)This attribute sets the name of the codebehind handler that executes when the RadioButton is clicked.
 Content (optional)This attribute's value will be displayed as the RadioButton label.
 IsChecked (optional)This attribute sets the initial state of the RadioButton.  
 trueSets the initial state to selected
 falseSets the initial state to unselected
 IsCheckedChanged (optional)This attribute sets the name of the codebehind handler that executes when the RadioButton changes state. EventsClickIsCheckedChanged | RadioButtonList | Hierarchy: UIElement  FrameworkElement  Control  ItemsControl  Selector | 
 
  <RadioButtonList     SelectionChanged="RadioButtonSelectionChangedHandler">         <RadioButton Name="rb1">Radio Button 1</RadioButton>         <RadioButton Name="rb2">Radio Button 2</RadioButton>         <RadioButton Name="rb3">Radio Button 3</RadioButton> </RadioButtonList>  
 <RadioButtonList .../> is a selector containing a group of RadioButton elements and is limited to a single selection mode. RadioButtonList can contain any type of element, but all elements declared within its beginning and ending tags will be interpreted as a RadioButton and displayed as the RadioButton's label. If you declare a Button in the middle of the list, the user interface will display a typical RadioButton with a Button next to it instead of a text-based prompt. Attributes 
 SelectionChanged (optional)This attribute sets the name of the codebehind handler that executes when the selection changes. EventsSelectionChanged | RepeatButton | Hierarchy: UIElement  FrameworkElement  Control  ContentControl  ButtonBase | 
 
  <RepeatButton     Delay="500"     Interval="100"     Click="ClickHandler"     Content="Increment Counter" />  
 <RepeatButton .../> is a button that continually raises its Click event until it is released. The interval between Click events is controlled through the event's properties. RepeatButton is used to implement the composite components HorizontalSlider and VerticalSlider. Attributes 
 Click (optional)This attribute sets the name of the codebehind handler that executes when the RepeatButton is clicked.
 Content (optional)This attribute's value will be displayed as the RepeatButton label.
 Delay (optional)This attribute sets the amount of time, in milliseconds, that the RepeatButton waits before it starts repeating. This value must be a non-negative Integer.
 Interval (optional)This attribute sets the amount of time, in milliseconds, between repeats. This value must be a non-negative Integer. EventsClick | ScrollViewer | Hierarchy: UIElement  FrameworkElement  Control  ContentControl | 
 
  ScrollViewer     HorizontalScrollBarVisibility="Auto|Visible|Hidden|Disabled"     VerticalScrollBarVisibility=" Auto|Visible|Hidden|Disabled"     ScrollChanged="ScrollChangedHandler"     CanContentScroll="true|false" >     ... </ScrollViewer>  
 <ScrollViewer .../> represents a scrollable area that contains other visible elements. The visible area of the content is called the viewport. The viewport for the ScrollViewer is defined by the Height and Width properties. Attributes 
 CanContentScroll (optional)Determines whether content is scrollable  
 trueThe content is scrollable.
 falseThe content is not scrollable.
 HorizontalScrollBarVisibility (optional)Determines the properties of the horizontal scrollbar  
 AutoThe scrollbar will be visible only if there is more content than can fit in the viewport.
 DisabledNo scrolling is allowed.
 HiddenThe scrollbar should never be visible or have space reserved for it.
 VisibleThe scrollbar should always be visible and have space reserved for it.
 ScrollChanged (optional)Sets the name of the codebehind handler that executes when a scrollbar changes position
 VerticalScrollBarVisibility (optional)Determines the properties of the vertical scrollbar  
 AutoThe scrollbar will be visible only if there is more content than can fit in the viewport.
 DisabledNo scrolling is allowed.
 HiddenThe scrollbar should never be visible or have space reserved for it.
 VisibleThe scrollbar should always be visible and have space reserved for it. EventsScrollChanged | Slider | Hierarchy: UIElement  FrameworkElement  Control  RangeBase | 
 
 Slider controls provide a thumb that slides from side to side to change a value, usually a number with a large range or a percentage. Slider is the parent of two objects: HorizontalSlider and VerticalSlider. These elements are controlled in a like fashion and have the same attributes. Attributes are applied based on whether the slider is displayed vertically or horizontally, but the two components are identical in all other respects. HorizontalSlider Hierarchy: UIElement  FrameworkElement  Control  RangeBase  Slider <HorizontalSlider     IsSnapToTickEnabled="true|false"     Minimum="0"     Maximum="3"     Delay="100"     Interval="100"     TickPlacement=" Both|BottomRight|TopLeft|None"     AutoToolTipPlacement="BottomRight|TopLeft|None"     AutoToolTipPrecision="2"     SmallChange="0.5"     LargeChange="1"     Ticks="0, 1, 2, 3"     TickFrequency="1"     Value="2" /> 
 <HorizontalSlider .../> is a composite component that allows the user to select a range of values using a sliding control displayed horizontally. VerticalSlider Hierarchy: UIElement  FrameworkElement  Control  RangeBase  Slider <VerticalSlider     IsSnapToTickEnabled="true|false"     Minimum="0"     Maximum="3"     Delay="100"     Interval="100"     TickPlacement="Both|BottomRight|TopLeft|None"     AutoToolTipPlacement="BottomRight|TopLeft|None"     AutoToolTipPrecision="2"     SmallChange="0.5"     LargeChange="1"     Ticks="0, 1, 2, 3"     TickFrequency="1"     Value="2" /> 
 <VerticalSlider .../> is a composite component that allows the user to select a range of values using a sliding control displayed vertically. Attributes 
 AutoToolTipPlacement (optional)Determines whether an auto-generated ToolTip will be shown and where it will appear.  
 BottomRightShows the auto ToolTip at the bottom edge of the Thumb in a HorizontalSlider and at the right edge in a VerticalSlider.
 NoneAuto ToolTips will not be shown.
 TopLeftShows the auto ToolTip at the top edge of the Thumb in a HorizontalSlider and at the left edge in a VerticalSlider.
 AutoToolTipPrecision (optional)Determines the number of decimal places shown in the auto-generated ToolTip.
 Delay (optional)The amount of time, in milliseconds, that the object's RepeatButton waits before processing an increase or decrease command.
 Interval (optional)Sets the amount of time, in milliseconds, between repeats. This value must be non-negative.
 IsSnapToTickEnabled (optional)Determines whether the Thumb will snap to tick marks. Snap describes the behavior of a thumb control when the mouse is clicked either to its left or right.  
 trueThumb will snap.
 falseThumb will not snap.
 LargeChange (optional)The amount added or subtracted from the Value when the scrollbar is clicked. The default is 1.
 Maximum (optional)Determines the maximum value for this object. The Value attribute will not be allowed to increase beyond this value.
 Minimum (optional)Determines the minimum value for this object. The Value attribute will not be allowed to decrease beyond this value.
 SmallChange (optional)The amount added or subtracted from the Value when the Thumb is moved. The default is 0.1.
 TickFrequency (optional)Sets the distance between Ticks. The default value for this attribute is 1.0. Ticks start at Minimum and end at Maximum.
 TickPlacement (optional)Determines where Ticks should be displayed relative to the slidebar.  
 BothDisplays tick marks on both sides of the slidebar.
 BottomRightDisplays tick marks below the track in a HorizontalSlider and to the right in a VerticalSlider.
 NoneNo tick marks are shown.
 TopLeftDisplays tick marks above the track in a HorizontalSlider and to the left in a VerticalSlider.
 Ticks (required)A collection of Double values that indicates the values of displayed tick marks.
 Value (optional)The initial value of the control. | TabControl | Hierarchy: UIElement  FrameworkElement  Control  ItemsControl  Selector | 
 
  <TabControl      TabStripPlacement="Bottom|Top|Right|Left"      SelectionChanged="SelectionChangedHandler" />  
 <TabControl .../> allows content to be organized in tabbed panes. It must contain at least one TabItem to be useful. Attributes 
 SelectionChanged (optional)Sets the name of the codebehind handler that executes when the selected TabItem changes
 TabStripPlacement (optional)Determines where individual TabItem objects will be placed  
 BottomTabs are placed at the bottom of content.
 LeftTabs are placed to the left of content.
 RightTabs are placed to the right of content.
 TopTabs are placed at the top of content. EventsSelectionChanged | TabItem | Hierarchy: UIElement  FrameworkElement  Control  ContentControl  HeaderedItemsControl | 
 
  <TabItem     Header="Tab 1"     IsSelected="true|false"     Content="Content" />  
 <TabItem .../> is a child of TabControl and defines individual tabs. Content may be omitted if elements other than text will be included. Figure 8-5 shows a TabControl with three TabItem declarations. Figure 8-5. A TabControl with three elements 
 Attributes 
 Content (optional)This attribute determines the text-based content of the TabItem.
 Header (optional)This attribute sets the title of the TabItem.
 IsSelected (optional)This Boolean determines whether a TabItem is initially selected.  
 trueThe TabItem is initially selected.
 falseThe TabItem is not selected. | TextBox | Hierarchy: UIElement  FrameworkElement  Control  TextBoxBase | 
 
  <TextBox     MaxLength="10"     AcceptsDigitsOnly="true|false"     TextChanged="TextChangedHandler"     CaretIndex="3"     CharacterCasing="Upper|Normal|Lower"     AcceptsReturn="true|false"     AcceptsTab="true|false"     TextTrimming="CharacterEllipsis|WordEllipsis|None"     Text="123" />  
 <TextBox .../> defines an editable region in which a user can enter text. Attributes 
 AcceptsDigitsOnly (optional)Determines whether this element will accept alphanumeric characters or numeric only.  
 trueThis element accepts only numeric input.
 falseThis element accepts alphanumeric input.
 AcceptsReturn (optional)Determines the element's behavior when the Enter key is pressed.  
 trueThe Enter key inserts a new line at the current cursor position. This is the default behavior.
 falseEnter is ignored.
 AcceptsTab (optional)Determines the element's behavior when the Tab key is pressed.  
 trueThe Tab key inserts a tab character at the current cursor position. This is the default behavior.
 falseThe Tab key moves to the next control in the tab order; no tab character is inserted.
 CaretIndex (optional)Determines the position of the caret. The value is of type Integer and is zero-based.
 CharacterCasing (optional)Determines the casing of characters during input. Typed characters are automatically converted according to this attribute.  
 LowerConverts typed characters to lowercase
 NormalDoes not convert typed characters
 UpperConverts typed characters to uppercase
 MaxLength (optional)Determines the maximum length of the string that this element will accept. The default is 0 and is of type Integer. The string can be set to a longer value programmatically.
 Text (optional)Sets the initial content of the TextBox.
 TextChanged (optional)Sets the name of the codebehind handler that executes when the text changes.
 TextTrimming (optional)Determines how text that flows past the end of the element is treated.  
 CharacterEllipsisText is trimmed at a character boundary. Remaining text is replaced with an ellipsis ( . . . ).
 NoneText is not trimmed.
 WordEllipsisText is trimmed at a word boundary. Remaining text is replaced with an ellipsis ( . . . ). EventsTextChanged | ToolBar | Hierarchy: UIElement  FrameworkElement  Control  ItemsControl  HeaderedItemsControl | 
 
  <ToolBar     BandIndex="0"     Band="0"     OverflowMode="Always|Never|AsNeeded|Never" />  
 <ToolBar . . . /> represents a standard UI toolbar with facilities to handle the overflow of items. ToolBar holds objects of type UIElement. Figure 8-6 shows the result of evaluating Example 8-9, which builds a ToolBar out of Button elements. Each Button contains an Image elementa common mechanism for building toolbars. Figure 8-6. ToolBar containing Buttons with images 
 The Band and BandIndex attributes are useful only when more than one ToolBarPanel is contained within a ToolBar. Example 8-9 contains example code and figures that demonstrate the usefulness of these two attributes. Attributes 
 Band (optional)This Integer value determines which band, or row, in the ToolBarTray this ToolBar should occupy.
 BandIndex (optional)This Integer value determines which band, or row, in the ToolBarTray this ToolBar should occupy.
 IsOverFlowOpen (optional)This Boolean determines the initial state of the ToolBarOverflowPanel.  
 trueThe overflow panel is open.
 falseThe overflow panel is closed. Attached Attributes 
 ToolBar.OverflowModeDetermines how an element should be added to the overflow panel, if ever  
 AlwaysThis element should always be added to the overflow panel.
 AsNeededThis element should be added to the overflow panel if necessary.
 NeverThis element should never be added to the overflow panel. | ToolBarOverflowPanel | Hierarchy: UIElement  FrameworkElement  Panel | 
 
  <ToolBarOverflowPanel     WrapWidth="100" />  
 <ToolBarOverflowPanel .../> describes the overflow panel for a ToolBar. It is used in conjunction with a ToolBarPanel to determine which elements are automatically placed into the overflow panel when there is not enough room in the ToolBar to display all of them. If there is not enough room for even one element in the ToolBar, then all elements declared in the ToolBarOverflowPanel will appear there. If there is enough room for all the elements declared in the ToolbarOverflowPanel to be displayed on the ToolBarPanel, then they will appear there. Attributes 
 WrapWidth (optional)This Integer value sets the width at which items will begin to flow into the overflow panel. | ToolBarPanel | Hierarchy: UIElement  FrameworkElement  Panel  StackPanel | 
 
  <ToolBarPanel />  
 <ToolBarPanel .../> is responsible for arranging items in a ToolBar and determining which elements will fit there and which will be placed into the ToolBarOverflowPanel. Example 8-10 describes a ToolBarPanel with two ToolBar elements, one of which is always an overflow item and one that is not. The result is shown in Figure 8-7. Figure 8-7. A ToolBarPanel with overflow 
 | ToolBarTray | Hierarchy: UIElement  FrameworkElement  Panel  Canvas | 
 
  <ToolBarTray     IsLocked="true|false"     Orientation="Vertical|Horizontal" >  
 <ToolBarTray .../> defines a toolbar tray that holds a group of ToolBar elements. The BandIndex and Band attributes indicate the order of these elements in the ToolBarTray. Figure 8-8 shows the result of specifying Band="0" for both ToolBar elements. Specifying the same Band for both ToolBar elements lines them up horizontally. Changing the first value to Band="1" results in Figure 8-9, in which the ToolBar elements line up vertically. Example 8-11 demonstrates the code for a ToolBarTray with multiple ToolBars. Figure 8-8. Specifying the same value for Band in a ToolBarTray 
 Figure 8-9. Specifying two different values for Band in a ToolBarTray 
 Attributes 
 IsLocked (optional)Specifies whether child instances of ToolBar can be moved within the ToolBarTray  
 trueToolBar elements may not be moved.
 falseToolBar elements may be moved. This is the default behavior.
 Orientation (optional)Determines the orientation of the ToolBarTray  
 HorizontalThe element is oriented horizontally.
 VerticalThe element is oriented vertically. | ToolTip | Hierarchy: UIElement  FrameworkElement  Control  ContentControl | 
 
  <ToolTip       Placement="Absolute|AbsolutePoint|Top|Bottom|Right|Center|Left|Relative|                  RelativePoint|Mouse|MousePoint"     HorizontalOffset="50"     VerticalOffset="20"     StaysOpen="true|false"     Opened="OpenedHandler"     Closed="ClosedHandler"     PlacementTarget="Target"     HasDropShadow="true|false" />  
 <ToolTip .../> displays a small pop-up window after particular events are raised or when the mouse hovers over a control. Assigning a ToolTip to a control requires the explicit declaration of the ToolTip attribute, which is inherited from FrameworkElement. ToolTip can be declared inline as a String, in which case the system automatically displays the tool tip with its default style. ToolTip can also be explicitly declared, as shown in Example 8-12, as any derivative of UIElement. Attributes 
 Closed (optional)Sets the name of the codebehind handler that executes when the ToolTip closes.
 HasDropShadow (optional)Determines whether the ToolTip has a drop shadow.  
 trueToolTip has a drop shadow.
 falseToolTip does not have a drop shadow. This is the default value.
 HorizontalOffset (optional)Determines the offset of the pop up from the left. It is of type Double.
 Opened (optional)Sets the name of the codebehind handler that executes when the ToolTip opens.
 Placement (optional)Determines where the ToolTip appears.  
 AbsoluteUses HorizontalOffset and VerticalOffset to position the ToolTip relative to the upper-left corner of the screen.
 AbsolutePointUses HorizontalOffset and VerticalOffset to position the ToolTip relative to the upper-left corner of the screen. If the pop up extends beyond the edges of the screen, it flips to the other side of the point.
 BottomPositions the pop up on the bottom edge of its parent, aligning left edges.
 CenterCenters the pop up over the parent.
 LeftPositions the pop up on the left side of the parent, aligning upper edges.
 MouseBehaves the same way as Bottom but uses the bounding box of the mouse cursor.
 MousePointBehaves the same way as RelativePoint, but its reference point is the tip of the mouse cursor.
 RelativeUses HorizontalOffset and VerticalOffset to position the ToolTip relative to the upper-left corner of the parent element.
 RelativePointUses HorizontalOffset and VerticalOffset to position the ToolTip relative to the upper-left corner of the parent element. If the pop up extends beyond the edges of the screen, it flips to the other side of the point.
 RightPositions the pop up on the right side of the parent, aligning upper edges.
 TopPositions the pop up on the top edge of the parent, aligning left edges.
 PlacementTarget (optional)Determines the element relative to which the ToolTip is displayed. This element is used to calculate placement. If null, the parent element is used.
 StaysOpen (optional)Determines the behavior of the ToolTip when opened.  
 trueThe ToolTip stays open.
 falseThe ToolTip automatically closes after a specified period of time. This is the default behavior.
 VerticalOffset (optional)Determines the offset of the pop up from the top. It is of type Double. EventsClosedOpened | Window | Hierarchy: UIElement  FrameworkElement  Control  ContentControl | 
 
  <Window     Left="10"     ResizeMode="CanMinimize|CanResize|CanResizeWithGrip|NoResize"     ShowInTaskbar="true|false"     StatusBarContent="My Status Bar Content"     Text="Window Title"     Topmost="true|false"     WindowState="Maximized|Minimized|Normal"     WindowStyle="None|SingleBorderWindow|ThreeDBorderWindow|ToolWindow" />  
 Attributes 
 HasStatusBar (optional)A Boolean value determining whether the Window has a status bar.  
 trueThe Window has a status bar.
 falseThe Window has no status bar. This is the default.
 Left (optional)An Integer value that describes the location of the left edge of the window in logical units (1/96").
 ResizeMode (optional)Determines how, if at all, the user can resize the Window.  
 CanMinimizeThe user can only minimize the window and restore it from the task bar. Only the minimize box is enabled, even though the maximize box is shown.
 CanResizeThe user can resize the window.
 CanResizeWithGripThe user can resize the window, and a resize grip is displayed in the window's lower-right corner.
 NoResizeThe user cannot resize the window. The maximize and minimize boxes are not displayed.
 ShowInTaskbar (optional)A Boolean value that determines whether the window shows up in the task bar.  
 trueThe window shows up in the task bar and can be accessed through Alt-Tab.
 falseThe window does not show up in the task bar.
 StatusBarContent (optional)The content shown in the status bar. This attribute is meaningless if HasStatusBar is set to false.
 Text (optional)The title of the Window.
 Top (optional)An Integer value that describes the location of the top edge of the window in logical units (1/96").
 Topmost (optional)A Boolean value determining whether this window should be on top at all times.  
 trueThe window always appears on top.
 falseThe window behaves normally.
 WindowState (optional)Determines the initial state of the window.  
 MaximizedThe Window starts maximized.
 MinimizedThe Window starts minimized.
 NormalThe Window starts at its specified dimensions.
 WindowStyle (optional)Determines the core style for the Window.  
 NoneThe Window has no border or caption.
 SingleBorderWindowThe Window will have a single border. This is the default.
 ThreeDBorderWindowThe Window will have a 3-D border.
 ToolWindowThe Window will appear as a fixed-tool window. |