2013-01-18 4 views
1

C# 및 XAML을 사용하여 Windows 8 응용 프로그램을 만들고 싶습니다.XAML에서 이미지 맵을 수행 할 수있는 방법이 있습니까?

HTML의 이미지 맵 요소와 동일한 방식으로 이미지를 클릭 할 수 있도록하고 싶습니다.

개별 이미지로이를 수행하는 방법이있을 수 있지만 올바르게 배치하는 것은 매우 어려울 수 있습니다.

XAML에서 이미지를 클릭 할 수있게 할 수 있습니까?

답변

2

간단한 개념 예 ...

추가 된 네임 스페이스, 나는 상황을 제대로 이해한다면)

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" 


<Grid Height="300" Width="300"> 
     <Grid.Background> 
     <Image/> <!-- Add your image source here, 
         you dont want to know the picture I was going to put :) --> 
     </Grid.Background> 

     <Rectangle Height="20" Width="20" Stroke="Red" StrokeThickness="2" Margin="60,120"> 
     <i:Interaction.Triggers> 
      <!-- Couldn't recall if its "Click" event or "MouseLeftButtonDown" --> 
      <i:EventTrigger EventName="MouseLeftButtonDown"> 
       <ei:ChangePropertyAction TargetName="Blah" 
             PropertyName="Visibility" 
             Value="Visible" /> 
      </i:EventTrigger> 
     </i:Interaction.Triggers> 
     </Rectangle> 

     <TextBlock Text="Whoa Dude, Where's my click?" x:Name="Blah" FontSize="50" Visibility="Collapsed"/> 

    </Grid> 
단지
+0

, 그것은이다 그리드를 사용하여 이미지를 분할하고 그리드의 어느 부분에 따라 다른 방법을 사용할 수 있습니까? – PriestVallon

+1

아니, 당신이 원하는대로 Grid, Canvas를 사용할 수 있습니다. 그런 다음 마우스 이벤트를 어디에서 받기를 원하는지 위에 놓습니다. 그리드 셀을 사용하면 영역을 얼마나 정확하게 만들 수 있는지 제한됩니다. 이 기법을 사용한 것처럼, 원하는대로 모양, 경로에 이벤트를 첨부 할 수 있습니다. 예를 들어 클릭 맵을 원한다고 말하면서 도형 주위에 경로를 그리고 마우스 이벤트를 첨부하고지도 이미지와 상태에 놓습니다. –

+0

복잡한 것을 가지고있는 사람은 누구나 읽을 수 있습니다. 셰이프를 만들려면 expression studio를 사용하여 경로를 만들고 xaml로 내 보냅니다. 이렇게하면 많은 시간을 절약 할 수 있습니다. – SeeMoreGain

2

이벤트를 추가하여 MouseDown 및 MouseUp 이벤트를 추적하고 이벤트를 자신의 Click 이벤트로 변환 할 수는 있지만 WPF에서는 예외가 분명하게 들리지 않습니다. 이미지를 클릭하기 위해 사용자 정의 패턴을 사용하여 사용자 정의가 가능한 이미지를 사용하는 보안 시스템을 만드는 경우. 그러나 Photoshop에서 사용자 인터페이스를 그리는 중이고 그 작업을 원할 경우 - 스타일링, 벡터 렌더링, 컨트롤 관련 이벤트를 잃게됩니다. WPF의 전체적인 아이디어입니다.

결론 : 이미지 사용을 정당화하는 작업을 지정하지 않은 경우에만 대답을 할 수 있습니다. 수행하지 마십시오. 바로 XAML에서

+0

그는이 점을 코딩 및 게임을 클릭하려고 상상 : – WiiMaxx

관련 문제