19 Aralık 2008 Cuma

ASP.net AJAX Extensions

Visual Studio 2005 inizde web projesi oluştururken toolbox ınızda AJAX Extensions bölümü yoksa buradan indirip bilgisayarınıza setup ı kurun.
AJAX Extensions ScriptManager, UpdatePanel gibi önemli kontrolleri bulundurur. Örneğin internetten bulduğunuz bir Ajax tool kullanacaksınız, sayfanızda bir tane ScriptManager, ve sayfada server a gidecek yerin UpdatePanel içinde olması gerekmektedir. Yani Ajax kullanılan yerde bu extensions lar olmak zorundadır.

16 Aralık 2008 Salı

Visual Studio 2008 C# klavye kısayolları posteri

Daron Hocamızın açıklamasa hiç haberimizin olmayacağı :) Visual Studio 2008 de C# ile kod yazarken ihtiyacımız olan bütün klavye kısayolları. Görmeyenler için buradan da duyuruyorum. Artık kod yazarken mouse a son.
Kullanmadığımız ne kadar da çok kısayol varmış meğer. Posteri buradan indirebilirsiniz.

15 Aralık 2008 Pazartesi

C# Konsol Uygulamalarında Global Değişken

C# konsol uygulamalarında global değişken tanımlanamıyor. Global değişkenler tanımlandığı alandaki, fonksiyonlarda tekrar tanımlanmaya gerek duymadan kullanılabilen değişkenlerdir. Konsol uygulamalarında global değişken tanımlama yok, bunun yerine;
static int sayi = 0;
tanımlanıp global değişken gibi kullanılabilir.

11 Aralık 2008 Perşembe

Resim Üzerine Yazı Yazma

Resim üzerine yazı yazma konusu herkesin bildiği bir şey. Graphics sınıfı kulanılarak istenen yere drawSring fonksiyonuyla yazı yazılır.
Sorun şurda, birden fazla resimler üzerine reklam amacıyla bir yazı yazmaya çalışıtığınızda farklı resimlere aynı font büyüklüğü değerini kulanılmıyor, tahmini bir değer de verilmiyor. width 100px olan bir resme 10 font büyüklü olursa, 200px olan bir resme 20 font büyüklüğü olur mantığı yanlıştır ve çalışmaz. Gerçek örnekler üzerinden gidersek 1600x1200 olan bir resimde font büyüklüğü bir arttığında resim üzerinde yazılan yazının büyüklüğü 42px kadar artar, fakat 900x1250 olan bir resimde ise 10px kadar artar. O yüzden kafamızdan bir font büyüklüğü belirleyemiyoruz.
Bir zamandır bununla uğraşıyordum bunu nasıl otomatik bir hale getirebilirim diye. Kodunu paylaşmak istedim. Alınan resmin tam ortasına yazılması istenen yazıyı yazıyor.

int fontSize = 1;
bool enough = false;
SizeF f = new SizeF();
string name = ""; // buraya serverda olan resmin adını yazıyoruz mesela a.jpg
Bitmap bmp = new Bitmap(Server.MapPath("~/resim/" + name));
Graphics g = Graphics.FromImage(bmp);
StringFormat format = new StringFormat(StringFormatFlags.FitBlackBox);
format.Alignment = StringAlignment.Center;
format.LineAlignment = StringAlignment.Center;
while (enough == false)
{
f = g.MeasureString("www.xx.com.tr", new Font("Verdana", fontSize, FontStyle.Regular));
if (f.Width <= bmp.Width - 40) //40 değeri formatta verilen dikdörtgenden dışarı çıkmaması için öylesine verilmiş bir değerdir
{
fontSize++;
}
else if (f.Width > bmp.Width - 40)
{
enough = true;
}
}
g.DrawString("www.xx.com.tr", new Font("Tahoma", fontSize, FontStyle.Bold), Brushes.White, new RectangleF(10, bmp.Height / 3, bmp.Width - 20, bmp.Height / 3), format);
bmp.Save(Server.MapPath("~/yaziliResim/Written" + name)); //resmin yazılmış şeklini kaydetme