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
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 |