인사말WPF - Canvas_MouseLeftButtonDown 이벤트
저는 어제 WPF로 개발하기 시작했고 몇 가지 문제가있었습니다. Canvas는 WinForms의 Panel과 동일한 것이라는 것을 알게되었습니다. 그러나 나는 'click'이벤트에 어려움을 겪고있다. MouseLeftButtonDown 이벤트입니다. 가 관련이 또는되지 않은 경우,이 이미지와 유세는 위의 이미지는 내가 어려움을 겪고 무엇을 기본적으로 UserControl을
에 있습니다. 당신이 보는 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에 익숙하지 않다고 말한 것처럼 현재 시도하는 것보다 더 나은 방법이 있다고 생각한다면 그렇게 말하십시오!
미리 감사드립니다.
네, 실제로 Background = "Transparent"는 트릭을합니다! 그냥 표준으로 두는 것이 아닙니다. 답장을 보내 주셔서 감사합니다! – Citroenfris
미안 해요 - 내 exprimation 꽤 불투명했다, 내가 캔버스가 투명하다고 말했다 나는 사실은 그들이 시각적 인 나무 hierachy에서 마우스 이벤트에 대한 투명 사실을 reffering, 그들의 배경 null이 :) –
답장을 보내 주셔서 감사합니다 그러나 , 그것은 내가 이것으로 고투하고있는 바보 같이 보인다! 정말 간단합니다. P. – Citroenfris