PDA

View Full Version : چطور موقعیت Mouse را در WPF form میشه پیدا کرد ؟



mdssoft
پنج شنبه 30 خرداد 1387, 02:14 صبح
سلام.
بچه ها می دونید چطور میشه موقعیت Mouse(X,Y) را در WPF Form پیدا کرد !
من با روش های WindowsForm رفتم نتونستم جوابی بگیرم :ناراحت:

Mahdi.Kiani
پنج شنبه 30 خرداد 1387, 08:40 صبح
اگر رویداد مورد نظرتون آرگومانی از جنس MouseButtonEventArgs داشته باشه، توسط دستور



e.GetPosition


می توانید بدست بیارید. آرگومانی باید به این متد پاس بدهید، که یک عنصر از جنسی باشه که IInputElement را پیاده سازی کرده باشه.. تمامی عناصری که از کلاس Control ارث بری کنند، می توانند به عنوان آرگومان این متد استفاده شوند. چون Control از FrameworkUIElement ارث بری می کنه و FrameWorkUIElement هم IInputElement را پیاده سازی می کند.
در بیشتر مواقع e.GetPosition(this) کارتون را راه میندازه

در جایی هم که آرگومانتون از جنس MouseEventArgs نباشه میتونید از Mouse.GetPosition استفاده کنید.



من با روش های WindowsForm رفتم نتونستم جوابی بگیرم :ناراحت:

البته من نمی دونم کدی که شما استفاده کردی چی بوده ولی :
هیچ موقع سعی نکن راه کار های تکنولوژی های قبلی را در این تکنولوژی به کار بگیری.. ( مگر در مواقع نیاز و لزوم). چون خیلی از موارد در این تکنولوژی از Base تغییر کرده. به عنوان مثال اگر چه رویداد ها ( Event) به شکل قبلی هنوز ساپورت می شوند، ولی در WPF شیوه جدیدی برای تعاریف رویداد ها وجود دارد. ( مبحث جدیدی به نام Routed Events )
به عنوان مثال شما می توانید برای یک Button بدون اینکه در کد آن هیچ رویداد کلیکی تعریف نکردید، کد هایی بنویسید که با کلیک کردن اون دکمه اجرا شوند. که این قابلیت بسیار استفاده می شود، و از کد نویسی های بسیاری جلوگیری می کند.
یا مثلا در بحث Exception ها، در بسیاری از مواقع، به صورت پیش فرض ، Exception های تولید شده توسط برنامه شما، توسط WPF نادیده گرفته می شوند که این موضوع هم دارای معایبی است و هم دارای محاسن....

پس قبل از نوشتن برنامه یا پروژه توسط این تکنولوژی حتما مطالعات زیادی داشته باشید تا بسان بسیاری از افراد در این زمینه به بیراهه نروید و دقیقا بر خلاف اساس این تکنولوژی عمل نکنید.

موفق باشید

mdssoft
پنج شنبه 30 خرداد 1387, 18:44 عصر
ممنون کیانی جان .

اما حقیقت من زیاد با IInputElement آشنا نیستم ، اگر ممکن هست یه نمونه کد یا لینکی بده تا بهتر متوجه بشم .

یا علی

Mahdi.Kiani
جمعه 31 خرداد 1387, 13:46 عصر
ممنون کیانی جان .
اگر ممکن هست یه نمونه کد یا لینکی بده تا بهتر متوجه بشم .

یا علی

Routed Events Overview (http://msdn.microsoft.com/en-us/library/ms742806.aspx)

mdssoft
جمعه 31 خرداد 1387, 23:25 عصر
ممنون ، لینک رو می خونم .