Привет
Я начал разработку с WPF вчера и столкнулся с некоторыми проблемами. Я пришел к выводу, что Canvas - это эквивалент панели в WinForms. Однако я столкнулся с некоторыми трудностями с событием «click». Событие MouseLeftButtonDown. Если это актуально или нет, это изображение и полотна находятся в пользовательском контроле
![Image + 3 Canvasses](https://i.stack.imgur.com/zUWPX.jpg)
Приведенное выше изображение - в основном то, с чем я испытываю трудности. 3 изображения, которые вы видите, это одно изображение. Квадраты, которые вы видите, представляют собой разные холсты. В зависимости от того, по какому холсту щелкнули, я хочу, чтобы произошло что-то другое.
В настоящее время у меня есть следующий код:
<Grid>
<Canvas Name="canvasTerran" Height="27" Width="26" Margin="88,106,134,106" MouseLeftButtonDown="canvasTerran_MouseLeftButtonDown" />
<Canvas Name="canvasZerg" Height="27" Width="26" Margin="117,107,105,107" MouseLeftButtonDown="canvasZerg_MouseLeftButtonDown" />
<Canvas Name="canvasProtoss" Height="27" Margin="145,107,88,107" MouseLeftButtonDown="canvasProtoss_MouseLeftButtonDown" />
<Image Name="imageRaces" Height="27" Width="73" Stretch="Fill" Source="pack://application:,,,/Images/Races/Races.png" />
</Grid>
Когда я запускаю приложение (пользовательский элемент управления находится в главном окне курса) и щелкаю там, где должны быть холсты, ничего не происходит. Событие, которое я пытаюсь запустить:
private void canvasTerran_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("lolterran", "lol");
// image on main window
// .Source = new BitmapImage(new Uri("pack://application:,,,/" + Constants.RACESPATH + "T.png"));
}
Я действительно не вижу, что я делаю здесь неправильно, поэтому любые предложения будут приветствоваться. Как я уже сказал, я новичок в WPF, поэтому, если вы думаете, что есть лучший способ, чем я сейчас пытаюсь, пожалуйста, скажите об этом!
Заранее спасибо.