obsługiwać zdarzenie kliknięcia poza przyciskiem
Próbuję ćwiczyć c # przez odtworzenie aplikacji w Apple AppStore.
W aplikacji znajduje się prostokąt z tekstem:"Touch me"
. Kiedy go dotkniesz, prostokąt się zmieni.
Po kilkukrotnym wykonaniu tekst zmieni się na „Nie dotykaj mnie”. W takim przypadku musisz dotknąć poza prostokątem.
Wszystko poszło dobrze, aż do momentu, w którym musisz dotknąć poza prostokątem.
Oto moja obsługa zdarzeń:
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);
}
}
}
Program działa idealnie do punktu, w którym musisz kliknąć poza prostokątem.
Program zamyka się po kliknięciu prostokąta, ale po kliknięciu poza nim nic się nie dzieje. Czy jest jakiś program obsługi zdarzeń, który może wykonać zadanie, którego chcę?
Oto mój 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>