PDA

View Full Version : استفاده از کلاس فونت



PetekDincos
چهارشنبه 23 شهریور 1390, 16:10 عصر
با سلام
آیا راهی برای ذخیره فونتی که با استفاده از font dialog بدست می یاد یکجا در دیتابیس وجود داره و اگر وجود نداره من خودم می یام مقادیر مربوط به فونت رو به صورت مجزا Font_Name,Font_Size ,Italic,Bold,... رو در دیتابیس ذخیره می کنم و بعد وقتی که می یام اینها رو به صورت یک فونت در بیارم و به یک کنترل اعمال بکنم به مشکل بر می خورم مثلا برای FontStyle چطور بررسی کنم که اگر فیلدهای مربوط به Italic,Underline در جدولم true باشند به FontStyle فونتم اعمال کنم و در کل در مورد کلاس فونت راهنمایی می خواستم با تشکر

Esmail Solhkhah
پنج شنبه 24 شهریور 1390, 11:17 صبح
سلام دوست عزیز

فونتها در ویندوزهای خانواده NT در مسیر زیر از ریجستری قرار دارند

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]

شما اول با استفاده از این مسیر نام فیزیکی فونت مورد نظر را پیدا کنید

بعد فونت مورد نظر را میتوانید به عنوان یک فایل فیزیکی یا یک Memory Stream در دیتابیس ذخیره کنید.

برای یازیابی : بعد از خواندن از دیتابیس و تبدیل به فایل :


private void button1_Click(object sender, EventArgs e)
{
PrivateFontCollection fonts;

FontFamily family = LoadFontFamily(Application.StartupPath + "\\BYEKAN.TTF", out fonts);

Font theFont = new Font(family, 20.0f);

label1.Font = theFont;

theFont.Dispose();

family.Dispose();

family.Dispose();
}

public static FontFamily LoadFontFamily(string fileName, out PrivateFontCollection fontCollection)
{
fontCollection = new PrivateFontCollection();

fontCollection.AddFontFile(fileName);

return fontCollection.Families[0];
}


موفق باشید.

PetekDincos
پنج شنبه 24 شهریور 1390, 12:33 عصر
با سلام
اگر امکانش است نخوه ذخیره در دیتابیس یعنی نوع فیلدی که در دیتابیس باید انتخاب کنم چیه یعنی نوع فیلد رو string انتخاب کنم و فقط نام فونت رو ذخیره کنم بعد اون موقع اندازه و استایل فونت رو چطور ذخیره کنم در کل اگر امکانش باشه نحوه ذخیره فونتی که از fontDialog انتخاب می شه رو در دیتابیس و فراخوانی از دیتابیس رو توضیح بدید خیلی ممنون می شم با تشکر

Esmail Solhkhah
پنج شنبه 24 شهریور 1390, 13:55 عصر
با سلام
اگر امکانش است نخوه ذخیره در دیتابیس یعنی نوع فیلدی که در دیتابیس باید انتخاب کنم چیه یعنی نوع فیلد رو string انتخاب کنم و فقط نام فونت رو ذخیره کنم بعد اون موقع اندازه و استایل فونت رو چطور ذخیره کنم در کل اگر امکانش باشه نحوه ذخیره فونتی که از fontDialog انتخاب می شه رو در دیتابیس و فراخوانی از دیتابیس رو توضیح بدید خیلی ممنون می شم با تشکر

شما اگه میخاید خود فونت رو ذخیره کنید نوع دادش رو باید Image یا Varbinary(Max) بگیرید.

برنامشو کامل براتون مینویسم و میذارم تو قسمت

نمونه برنامه های کوچک و مفيد در سي شارپ (http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE)

تا بقیه دوستان هم بتونن استفاده کنن

فقط الان کار دارم سعی میکنم امشب بنوسیم

موفق باشید.

Esmail Solhkhah
پنج شنبه 24 شهریور 1390, 15:34 عصر
دوست عزیز برنامه رو نوشتم و با اجازتون تو لینک زیر قرار دادم تا بقیه دوستان هم بتونن استفاده کنن

http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE&p=1338743#post1338743

موفق باشید.

morteza271
پنج شنبه 24 شهریور 1390, 15:49 عصر
با تشکر از آقا اسماعیل به خاطر برنامه ای که برای دوستمون نوشتن.
ولی تا جایی که من از صحبت های دوستمون متوجه شدم منظورشون این نیست که فایل فونت رو ذخیره کنند و فقط میخوان یه فونت رو ذخیره کنند!یعنی مثلا کاربر برای فرم های برنامه یه فونت انتخاب میکنه و باید فونت فرم به فونت انتخابی تغییر کنه و فونت انتخابی هم در دیتابیس ذخیره شود نه اینکه خود فونت!!!
البته من اینجوری برداشت کردم شاید منظورشون چیز دیگه ای باشه.

PetekDincos
جمعه 25 شهریور 1390, 00:03 صبح
با سلام
ممنون از دوستمون آقای Esmail Solhkhah اما همانطور که دوستمون troski گفتن منظور من ذخیره ذخیره باینری خود فونت در دیتابیس نبود من می خواستم مثلا مشحصات یه فونت از قبیل نام فونت ، سایز ، Style,... رو در دیتابیس ذخیره کنم و در یه فرم دیگه همین فونت رو با سایز و استایلی که براش ذخیره کردم درست کرده و به پراپرتی Font کنترلم اعمال کنم که خودم یه چیزی درست کردم فقط می خواستم بدونم آیا راه منطقی برای این کار چیه چون من مییام برای چندین خاصیتی که یه فونت می تونه داشته باشه از قبیل Name,Size,Bold,Underline,Strikout,... در جدولم یه فیلد ایجاد می کنم و با توجه به مقادیر این خاصیت ها در جدول یک رکورد برای هر فونت ذخیره می کنم و بعد در فرم دیگه با توجه به این خاصیت ها یک شی از کلاس فونت ایجاد می کنم و به کنترلم اعمال می کنم با تشکر

Esmail Solhkhah
جمعه 25 شهریور 1390, 00:11 صبح
منظور من ذخیره ذخیره باینری خود فونت در دیتابیس نبود من می خواستم مثلا مشحصات یه فونت از قبیل نام فونت ، سایز ، Style,... رو در دیتابیس ذخیره کنم

از Serialization استفاده کنید.

موفق باشید.