برنامه نویسی با search هم میشه هاااا

The Results Of My Searches

WPF - MouseMove

جمعه, ۱۱ مرداد ۱۳۹۲، ۱۰:۰۲ ب.ظ
حتما تا به حال موقع مشاهده عکس در کامپیوترتون شده که روی عکس زوم کرده باشین و عکس رو با موس انتخاب کنید و تکون بدید.


برای اینکه بخواهیم عکس رو در اندازه واقعی خودش در فرم نشون بدیم و امکان حرکت دادن اون رو با scroll داشته باشیم باید یک scrollViewer تعریف کنیم و یک Image داخل آن بگذاریم. به نحوه ی تعریف کردن scrollViewer و Image در کد زیر دقت کنید:


event هایی که برای image تعریف شده اند مربوط به رویدادهای حرکت دادن عکس با موس است که جلوتر توضیح داده خواهند شد.

برای زوم کردن روی عکس و نشان دادن اندازه واقعی عکس باید از storyboard استفاده کنیم.
به کد نوشته شده برای storyboard توجه کنید:



storyboard حتما باید در Window.Resources نوشته بشه. برای Property هایی مثل Height و Width از کلاس DoubleAnimation استفاده میشه ولی مثلا اگر خواستین margin رو هم در storyboard بنویسین باید از ThicknessAnimation استفاده کنید.
اگر میخواستین مثلا به Height یک عددی رو نسبت بدین در همینجا میتونین این کارو انجام بدین مثلا:
StoryBoard.TargetProperty ="Height" To = "300"
همینطور میتونین StoryBoard رو در قسمت cs کد خودتون Handle کنید.


به کد بالا توجه کنید. path آدرس عکسی که میخواهین در Image قرار بدهید رو ازتون میگیره. با دادن این مسیر به یک object از کلاس BitmapImage و دادن آن Object به PictureBox.Source (توجه کنید که PictureBox اسم Image ای هست که در ScrollViewer ساختیم) عکس مورد نظر شما در Image نمایش داده خواهد شد. Sb نام Key در StoaryBoard است که بالا تعریف کردیم و bi.PixelHeight و bi.PixelWidth اندازه های واقعی عکس را برمی گردانند.
حالا با کلیک کردن روی دکمه ی زوم به تصویر بالا میرسین!

فرض میکنیم که میخواهیم عکس رو بدون Scroll و با موس حرکت بدیم. به رویداد هایی که در ابتدای تعریف Image داخل آن تعریف کردیم دوباره توجه کنید. کدهای نوشته شده در آن رویدادها رو در زیر میبینید:










موافقین ۷ مخالفین ۰ ۹۲/۰۵/۱۱
شیما اسلامی فر

نظرات  (۴)

خیلی هم خوووووووووووووووب :D

۱۶ مرداد ۹۲ ، ۲۲:۰۴ میثم هوشمند
خیلی هم خوب!
فقط چرا در سبک تعریف نام متغیر دچار دوگانگی هست این کد؟!؟!؟ :)
پاسخ:
منظورتونو متوجه نشدم... تعریف نام متغیر؟؟ منظورتون اسم PictureBox هست که برای Image گذاشتم یا اون bi؟ :)
۱۶ مرداد ۹۲ ، ۲۲:۱۶ میثم هوشمند
NexPostImage
isMouseDown

پاسخ:
اینا که دچار دوگانگی نیستن!
isMouseDown که یک bool هست که بررسی میکنه موس رو نگه داشتیم هنوز یا RightClick رو رها کردیم!
NextPosImage هم که یک point هست که position بعدی موس روی عکس رو بعد از رها کردن موس نگه میداره...

۱۶ مرداد ۹۲ ، ۲۳:۴۱ میثم هوشمند
عرض کردم در "سبک تعریف"!

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی