Я создаю демонстрационное приложение «Hello World» для Microsoft Surface. Вот XAML:
<s:SurfaceWindow x:Class="HelloWorld.SurfaceWindow1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="http://schemas.microsoft.com/surface/2008"
Title="HelloWorld"
>
<s:SurfaceWindow.Resources>
<ImageBrush x:Key="WindowBackground" Stretch="None" Opacity="0.6" ImageSource="pack://application:,,,/Resources/WindowBackground.jpg"/>
</s:SurfaceWindow.Resources>
<Canvas Background="{StaticResource WindowBackground}" s:Contacts.ContactDown="OnCanvasContactDown">
<Label Name="HelloWorldLabel" Visibility="Hidden">Hello, World!</Label>
</Canvas>
</s:SurfaceWindow>
Вот обработчик OnCanvasContactDown:
private void OnCanvasContactDown(object sender, ContactEventArgs e)
{
// Get the position of the current contact.
Point contactPosition = e.Contact.GetPosition(this);
// Set the X and Y position of HelloWorldLabel
// in relation to the canvas.
Canvas.SetLeft(HelloWorldLabel, contactPosition.X);
Canvas.SetTop(HelloWorldLabel, contactPosition.Y);
// Make the label visible.
HelloWorldLabel.Visibility = Visibility.Visible;
}
Проблема в том, что обработчик событий никогда не вызывается. Я тестирую его в Visual Studio 2008. Появляется экран симулятора поверхности, и когда я щелкаю по нему, я получаю визуальную обратную связь, что я «прикоснулся» к нему, но метка никогда не появляется. Если я ставлю точку останова где-нибудь внутри функции, она никогда не ломается.
Что я делаю не так?