2012-04-17 13 views
7

मुझे एक समाधान लागू करना है जिसके लिए मुझे सच में यकीन नहीं है कि कैसे आगे बढ़ना है क्योंकि मुझे यह भाषा (सी #) बहुत अच्छी तरह से नहीं पता है।छवि में क्लिक करने योग्य जोन बनाएं?

मुझे समझाएं: लक्ष्य ऐसा कुछ है जो उपयोगकर्ता को किसी आइटम से ज़ोन चुनने की अनुमति देता है (जिसमें एक गोलाकार रूप है)। तो इस विचार को ज़ोन पर संख्याओं के साथ एक छवि डाली गई थी (इसलिए अंत में यह घड़ी की तरह दिखाई देगी), और उस क्षेत्र से ज़ोन प्राप्त करें जो उपयोगकर्ता क्लिक करेगा।

तो मेरा सवाल है: क्या किसी छवि में क्लिक करने योग्य जोन बनाना संभव है? (या यदि आपके पास इस कार्यक्षमता के लिए कोई अन्य समाधान है, तो मैं खुले दिमाग में हूं)

अग्रिम धन्यवाद!

संपादित करें यह एक WinForm एप्लिकेशन के लिए है, वेबसाइट नहीं।

+3

क्या यह एक वेबसाइट या WinForms एप्लिकेशन है? – user7116

+0

यह एक विनफॉर्म एप्लिकेशन के लिए है, मैं वास्तव में उल्लेख करना भूल गया कि – BPruvost

उत्तर

2

धन्यवाद आपके सभी उत्तरों के लिए, उनमें दिलचस्प चीजें हैं।

int X = pictureBox.PointToClient(Cursor.Position).X; 
int Y = pictureBox.PointToClient(Cursor.Position).Y; 

:

दुर्भाग्य से, के रूप में मैं इस बहुत तेजी से विकसित करने के लिए किया था, मैं सिर्फ एक छवि है जिस पर मैं onclick घटना को पकड़ने और फिर क्षेत्रों को पकड़ने के उपयोगकर्ता इस तरह Cursor.Position का उपयोग करके क्लिक बनाया शायद इसे करने के लिए "क्लीनर" तरीका नहीं है, लेकिन यह काम करता है! वैसे भी धन्यवाद!

0

एचटीएमएल छवियों में देख रहे हैं।

आपको सीखने के लिए सीखने के लिए लगभग 5 मिनट का समय लगेगा।

टैग आप आवेदन कर सकते हैं और नक्शा विशेषता अपने नक्शे क्षेत्रों को परिभाषित की तुलना में और लिंक

यहाँ हालांकि यह सब है कि लोकप्रिय अब और नहीं है, you can use the <map> tag यह करने के लिए एक त्वरित गूगल प्रतिक्रिया http://www.javascriptkit.com/howto/imagemap.shtml

+0

उपर्युक्त जैसा ही है, मैं उल्लेख करना भूल गया कि मैं एक विनफॉर्म एप्लिकेशन बना रहा हूं, वेबसाइट नहीं, इसलिए इसका उपयोग नहीं किया जा सकता है: – BPruvost

1

है ।

<img src="planets.gif" width="145" height="126" alt="Planets" usemap="#planetmap" /> 

<map name="planetmap"> 
    <area shape="rect" coords="0,0,82,126" href="sun.htm" alt="Sun" /> 
    <area shape="circle" coords="90,58,3" href="mercur.htm" alt="Mercury" /> 
    <area shape="circle" coords="124,58,8" href="venus.htm" alt="Venus" /> 
</map> 

संपादित करें:

चूंकि यह एक WinForms समाधान की आवश्यकता है, शायद यह लेख आपके कर सकते हैं।

C# Windows Forms ImageMap Control

+0

सहायता के लिए धन्यवाद। दुर्भाग्य से मैं WinForms एप्लिकेशन बना रहा हूं, कोई वेबसाइट नहीं (जैसा कि मैंने पहली पोस्ट में उल्लेख करना भूल गया था) – BPruvost

+0

मैंने अपना जवाब अपडेट कर दिया है। – mgnoonan

2

आप क्यों नहीं बस कुछ इस तरह लागू नहीं करते?

using System; 
using System.Collections.Generic; 
using System.Drawing; 
using System.Linq; 
using System.Windows.Forms; 

public class Zone 
{ 
    public Region Region { get; private set; } 
    public Action<MouseEventArgs> Click { get; private set; } 

    public Zone(Region zoneRegion, Action<MouseEventArgs> click) 
    { 
     this.Region = zoneRegion; 
     this.Click = click; 
    } 
} 

public class PictureBoxWithClickableZones : PictureBox 
{ 
    private readonly List<Zone> zones = new List<Zone>(); 

    public void AddZone(Zone zone) 
    { 
     if (zone == null) 
      throw new ArgumentNullException("zone"); 

     this.zones.Add(zone); 
    } 

    protected override void OnMouseClick(MouseEventArgs e) 
    { 
     base.OnMouseClick(e); 

     foreach (var zone in this.zones.Where(zone => zone.Region.IsVisible(e.Location))) 
      zone.Click(e); 
    } 
} 

यदि आपके पास समय लगता है तो आप उचित घटक बना सकते हैं और फिर भी विजुअल स्टूडियो के WinForms डिजाइनर में उपयोग कर सकते हैं।

संबंधित मुद्दे