manejar el evento de clic fuera del botón
Estoy tratando de practicar c # reproduciendo una aplicación que está en Apple AppStore.
En la aplicación, hay un rectángulo con el texto:"Touch me"
. Cuando lo tocas, el rectángulo se reposiciona.
Después de hacer esto varias veces, el texto cambia a "No me toques". En ese caso tienes que tocar fuera del rectángulo.
Todo salió bien, hasta el punto en que tienes que tocar fuera del rectángulo.
Aquí está mi controlador de eventos:
private void Canvas_MouseLeftButtonDown_1(object sender, MouseButtonEventArgs e)
{
if (click == 0)
{
if (rectangle1.IsMouseOver || textBlock1.IsMouseOver)
{
// reposition and stuff
if (clicks == 10)
{
// Change the value of the variable click to 1
click = 1;
textBlock1.Text = "Do Not Click me";
Canvas.SetLeft(textBlock1, 200);
}
}
}
else
{
if (rectangle1.IsMouseOver || textBlock1.IsMouseOver)
{
// Game Over
this.Close();
} else
{
// reposition and stuff
click = 0;
textBlock1.Text = "Click me";
Canvas.SetLeft(textBlock1, 225);
}
}
}
El programa funciona perfectamente hasta el punto en el que tiene que hacer clic fuera del rectángulo.
El programa se cierra cuando hace clic en el rectángulo, pero cuando hace clic fuera de él, no sucede nada. ¿Hay algún controlador de eventos que pueda hacer la tarea que quiero?
Aquí está mi xaml
<Window x:Class="ClickMe.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="510" Width="525" ResizeMode="NoResize">
<Canvas Name="canvas" MouseLeftButtonDown="Canvas_MouseLeftButtonDown_1">
<Rectangle Fill="#FFF4F4F5" Name="rectangle1" HorizontalAlignment="Left" Height="38" Stroke="Black" VerticalAlignment="Top" Width="509" Canvas.Left="0" Canvas.Top="63"/>
<Label Name="label1" Content="0" Canvas.Left="57" Canvas.Top="446"/>
<Label Content="Klicks:" Canvas.Left="10" Canvas.Top="446"/>
<TextBlock Name="textBlock1" Canvas.Left="225" TextWrapping="Wrap" Text="Click Me" Canvas.Top="74" Margin="10,0,0,0"/>
</Canvas>