IXRButton (Windows Embedded CE 6.0)

1/6/2010

This class represents a button control, which responds to the Click event raised by the inherited class IXRButtonBase.

Syntax

class IXRButton : public IXRButtonBase

Methods

This class implements no new methods. All its methods are inherited from IXRButtonBase.

Remarks

The IXRButton class inherits directly from the IXRButtonBase class.

Use the inherited method IXRButtonBase::AddClickEventHandler to add a delegate to respond when the user clicks this button control. You can change how this button control raises the Click event by using the IXRButtonBase::SetClickMode method.

You can also define a button control in Microsoft Silverlight 2 XAML. For information about the differences between XAML in Silverlight for Windows Embedded and Silverlight 2, see Differences Between Silverlight for the Web and Silverlight for Windows Embedded. For more information about how to define this element in the source XAML for your application, see this Microsoft Web site.

Note

You should use the Click event to detect a button click instead of using the MouseLeftButtonDown or MouseLeftButtonUp events.

Example

The following code example shows how to create a button control, set properties on it, attach delegates to it, and add it to the content of an item in the element tree.

Note

To make the following code example easier to read, security checking and error handling are not included. This code sample should not be used in a release configuration unless it has been modified to include them.

#include <windows.h>
#include <XamlRuntime.h>
#include <XRDelegate.h>
#include <XRPtr.h>



void AddButtonToExistingElementTree(IXRApplication* pApplicationObject, 
IXRVisualHost* pVisualHost, IXRSolidColorBrush* pMyBlueBrush, 
EventHandler* pEventHandler)
{
    IXRButtonPtr                pButton;
    IXRTextBlockPtr             pTextBlock;
    IXRFrameworkElementPtr      pRootElement;
    IXRStackPanelPtr            pStackPanel;
    IXRUIElementCollectionPtr   pChildrenCollection;

    // Create a new button control from the IXRApplication object
    // using the CreateObject template helper for type safety
    //
    pApplicationObject->CreateObject(&pButton);
    pApplicationObject->CreateObject(&pTextBlock);

    // Here's where you would set the properties you want on the button 
    // control
    // (for example, width, height, fill, border, etc)
    // 
    pButton->SetWidth(10);
    pButton->SetHeight(5);
    pButton->SetBackground(pMyBlueBrush);
    
    // Set the text for the text block, and add it as the content
    // of the button   
    //
     WCHAR* text = L"Sync";
     pTextBlock->SetText(text);
     pTextBlock->SetFontSize(8);

     XRValue xrvalue;
     xrvalue.pObjectVal = pTextBlock;
     pButton->SetContent(&xrvalue);


     // Attach delegates to represent custom event handlers

     pButton->AddClickEventHandler(CreateDelegate(&pEventHandler, &EventHandler::OnButtonClick));
     pButton->AddMouseEnterEventHandler(CreateDelegate(&pEventHandler, &EventHandler::OnMouseEnter));
     pButton->AddMouseMoveEventHandler(CreateDelegate(&pEventHandler, &EventHandler::OnMouseMove));
     pButton->AddMouseLeaveEventHandler(CreateDelegate(pEventHandler, &EventHandler::OnMouseLeave));

     pButton->AddGotFocusEventHandler(CreateDelegate(&pEventHandler, &EventHandler::OnGainFocus));
     pButton->AddLostFocusEventHandler(CreateDelegate(&pEventHandler, &EventHandler::OnLostFocus));

    // Now get the root element (as stack panel) from your visual host
    // and add the button as a 
    // child in the panel's collection
    //

    // First, find the stack panel named "MyStackPanel"
    //
    pVisualHost->GetRootElement(&pRootElement);
    pRootElement->FindName(TEXT("MyStackPanel"), &pStackPanel);

    // Now get its children collection and add the new button to it
    //
    pStackPanel->GetChildren(&pChildrenCollection);
    pChildrenCollection->Add(pButton, NULL);
}

The previous code example assumes that you have already created an application instance, parsed the XAML markup into an element tree, and obtained a pointer (pVisualHost) to the visual host. For more information on the programming elements used in this code example, see IXRApplication, IXRVisualHost, XRPtr<Interface>, IXRStackPanel, IXRTextBlock, XRValue, CreateDelegate(class,class::method), and IXRUIElementCollection.

Inheritance Hierarchy

IXRDependencyObject

    IXRUIElement

        IXRFrameworkElement

            IXRControl

                IXRContentControl

                    IXRButtonBase

                        IXRButton

.NET Framework Equivalent

System.Windows.Controls.Button

Requirements

Header XamlRuntime.h
sysgen SYSGEN_XAML_RUNTIME
Windows Embedded CE Windows Embedded CE 6.0 R3

See Also

Reference

Classes for UI Element Management