PDA

View Full Version : ساخت گالری پیشرفته مثل ویندوز 7



f.beigirad
یک شنبه 20 اسفند 1391, 14:37 عصر
با سلام دوستان.

قصد دارم یه گالری بنویسم که نام عکسها و متن زیر اون عکسهارو از دیتابیس بخونه.
حالا پیشرفتگیش اینه که میخوام مثل ویندوز 7 که وقتی میرید داخل یه پوشه که عکس داره ، با جابه جا کردن اون TrackBar اندازه تصاویر تغییر میکنه.
101208ا
توی کار با دیتابیس مشکلی ندارم.
میخوام بدونم از چه آبجکتهایی استفاده کنم؟چه مطالبی رو باید یاد بگیرم؟

اما زیاد با آبجکتهای سی شارپ آشنا نیستم و نمیدونم از چه آبجکتایی استفاده کنم.

نا گفته نمونه من قبلا همچین گالری نوشتم و از ListView و ImageList استفاده کردم ولی هر بار که میخواست عکسارو بریزه توی ListView حدوده 10 ثانیه ای طول میکشید.البته حدود 300 تا عکس بود.
نمیخوام این افت سرعت رو داشته باشه.چکاری میتونم انجام بدم.

Mahmoud.Afrad
یک شنبه 20 اسفند 1391, 15:57 عصر
برای نمایش که از کنترل ListView استفاده کنید . عکسها رو در کنترل ImageList میریزید. اندازه رو هم روی همین ImageList اعمال کنید. مثال (http://barnamenevis.org/showthread.php?375086-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A7%D8%B3%DA%A9%D8%B1%D9%88%D9%84-%D8%AF%D8%B1%D8%B3%D8%AA-%DA%A9%D9%86%D9%85%D8%9F)

f.beigirad
یک شنبه 20 اسفند 1391, 16:28 عصر
با سلام و درود.

تاپیکی هم که ذکر کردین رو خودم ساختم و باز هم شما پاسخ دادین و این کار ر یاد گرفتم.

اینکار برای 300 عکس حدود 10 تا 20 ثانیه طول میکشه.و من نمیخوام این اتلاف وقت رو داشته باشه.
ترفندی برای این کار نیست؟؟؟؟

یا استفاده از آبجکتها و ابزار دیگه انجام این کارو سریع تر نمیکنه؟؟؟

یعنی تنها راه انجام این کار بدون استفاه از کامپوننت همین ListView و ImageList هست؟؟؟


ممنون از راهنمایی شما/

Mahmoud.Afrad
یک شنبه 20 اسفند 1391, 18:29 عصر
میتونی یک یوزرکنترل بنویسی(یک یوزرکنترل با یک پیکجرباکس، لیبل، ... و چند تا پراپرتی )
یک Container مناسب مثلا FlowLayoutPanel روی فرم قرار بدید. به تعداد عکس ها از یوزرکنترل نمونه بسازید و مقداردهی کنید و به FlowLayoutPanel اضافه کنید.

f.beigirad
یک شنبه 20 اسفند 1391, 18:48 عصر
یعنی اون trackBar باید سایز یوزر کنترل هارو مقدار دهی کنه??
یا اینکه اندازه یوزر کنترل ثابته ??
و اینکه اگر قرار شد سایز یوزر کنترل تغییر کنه سایز پیکچر باکس چجوری متناسب با اون تغییر خواهد کرد ????

Mahmoud.Afrad
یک شنبه 20 اسفند 1391, 19:55 عصر
سایز یوزر کنترل تغییر میکنه. برای پیکچرباکس هم باید Anchor تنظیم کنید. البته اندازه عکسی که به پیکچر باکس میدید هم باید مناسب باشه که حجم حافظه بیخود اشغال نشه.

f.beigirad
دوشنبه 21 اسفند 1391, 13:38 عصر
با سلام و درود

من بجای یوزر کنترل از فرم معمولی با BorderStyle ، None استفاده کردم و روی اون یه پیکچرباکس و یه لیبل گذاشتم و به تعداد 300 تا(تعداد عکسها) داخل یه FlowLoyatPanel اد کردم.
خواص Anchor لیبل و پیکچر باکسم رو هم درست کردم.

اندازه عکسام تقریبا برابر همون پیکچرباکسمه.

خلاصه بگم من به هدفم رسیدم ولی با جابه جا کردن trackBar ی که روی فرمم کذاشتم تا سایز اون فرم کوچیک رو تغییر بدم و دوباره اد کنم داخل flowLoyat ، برنامه خیلی کند عمل میکنه.

حدود 10 تا 20 ثانیه طول میکشه. و این مشکلیه که من باش مواجهم.

راه حلی نداره که سرعت بره بالا؟؟؟

مثلا این اد کردن آبجکتها داخل FlowLoyat توی چند مرحله انجام شه.چون کاربر همه ی عکسهارو که نمیتونه در یک نگاه ببینه و با اسکرول کردن صفحه میخواد بقیه عکسارو ببینه.
برای انجام این کار نمیدونم چکار کنم .

ممنون میشم راهنمایی کنید.

با تشکر