我試圖通過重現Apple AppStore中的應用程序來練習c#。按鈕外部的句柄點擊事件
在應用程序中,有一個矩形文本:"Touch me"
。當你觸摸它時,矩形會重新定位。
執行此操作幾次後,文本更改爲「請勿觸摸我」。在這種情況下,您必須觸摸矩形外部。
這一切都很順利,直到你不得不觸摸矩形外。
這裏是我的事件處理程序:
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);
}
}
}
該項目工程完全達到,你必須在矩形之外單擊該點。
程序在您點擊矩形時關閉,但當您在外面點擊時沒有任何反應。 是否有任何事件處理程序可以完成我想要的任務?
這是我的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>
取決於,我們需要看到xaml。我們無法知道包含此矩形的東西 - 也許您可以爲任何容器觸發MouseClick事件?如果沒有,創建一個可以這樣做的容器。 – tnw 2013-03-22 20:36:39
我添加了xaml文件。 據我所知,該矩形沒有點擊事件,這就是我使用Canvas_MouseLeftButtonDown事件的原因。 – user2200747 2013-03-22 20:45:17
我不會在應用商店發佈它,我只是嘗試重建窗口的應用程序,爲我自己的娛樂... – user2200747 2013-03-22 20:59:56