- Katılım
- 20 Nisan 2008
- Mesajlar
- 6,608
- Reaksiyon puanı
- 144
- Puanları
- 243
Bilgilendirme:
Masaüstünüz için eğlenceli küçük bir araç: basit büyüteç.
Arkaplan:
Daha önceleri en az bir kere olsun büyüteç uygulaması gördüğünüze inanıyorum. İşletim sistemi ile birlikte geleni denedim fakat beğenmedim. Bu yüzden kendi kullanımım için basit bit uygulama geliştirmeye karar verdim.
Kodlar hakkında birkaç kelime:
Daha önceden de açıkladığım gibi program basit bir uygulamadır. Ancak yine de birkaç ilginç nokta var: Bunların birincisi, nasıl ekran görüntüsü alınacağını gösteriyor, double buffering, Windows formunu programsal olarak hareket ettirme, ve XmlSerializer üzerinden serializing/deserializing yapılandırma işlemleri. Bunların ikincisi, bu küçük uygulama aklımda eğlenceli bir uygulama olarak tasarlanmıştır, onun için bu işlemler geleneksel Windows programlama adımlarını takip etmez. Onun yerine ana form olarak çerçevesiz bir pencere kullandım. Sadece 3 buton tüm işlevleri sağlar: Birincisi büyüteç formunu temsil eder, ikincisi yapılandırma işlemleri, üçüncüsü uygulamadan çıkış.
Uygulamadan birkaç ekran görüntüsü:
Yapılandırma kısmı basit birkaç şeyle oynamanızı sağlar:
Kod parçacıklarından bazıları altta görünüyor:
Lütfen detaylara bakmak için uygulamanın içinde sağlanan kodlara bakın.
Sonuç:
Bu uygulamayı kodlamak gerçekten eğlenceliydi. Bu uygulamayı arkadaşlarımla paylaştım ve gerçekten çok sevdiler. En az benim kadar sizin de seveceğinizi ümit ediyorum.
İyi geceler!
Tarih:
İlk mesaj: 2 Nisan 2007
Lisans:
Bu makale, makale içindeki kod ve dosyalar, The Code Project Open License (CPOL) altında lisanslanmıştır.
Kaynak: http://www.codeproject.com/KB/cs/SimpleMagnifier.aspx
Çeviri: Ben :flowers:
Proje Kodları: http://ul.to/e69rul
Masaüstünüz için eğlenceli küçük bir araç: basit büyüteç.
Arkaplan:
Daha önceleri en az bir kere olsun büyüteç uygulaması gördüğünüze inanıyorum. İşletim sistemi ile birlikte geleni denedim fakat beğenmedim. Bu yüzden kendi kullanımım için basit bit uygulama geliştirmeye karar verdim.
Kodlar hakkında birkaç kelime:
Daha önceden de açıkladığım gibi program basit bir uygulamadır. Ancak yine de birkaç ilginç nokta var: Bunların birincisi, nasıl ekran görüntüsü alınacağını gösteriyor, double buffering, Windows formunu programsal olarak hareket ettirme, ve XmlSerializer üzerinden serializing/deserializing yapılandırma işlemleri. Bunların ikincisi, bu küçük uygulama aklımda eğlenceli bir uygulama olarak tasarlanmıştır, onun için bu işlemler geleneksel Windows programlama adımlarını takip etmez. Onun yerine ana form olarak çerçevesiz bir pencere kullandım. Sadece 3 buton tüm işlevleri sağlar: Birincisi büyüteç formunu temsil eder, ikincisi yapılandırma işlemleri, üçüncüsü uygulamadan çıkış.
Uygulamadan birkaç ekran görüntüsü:


Yapılandırma kısmı basit birkaç şeyle oynamanızı sağlar:

Kod parçacıklarından bazıları altta görünüyor:
PHP:
// Pencereyi eliptik yapma
GraphicsPath gp = new GraphicsPath();
gp.AddEllipse(ClientRectangle);
Region = new Region(gp);
//--- Double Buffering ---
protected override void OnPaintBackground(PaintEventArgs e)
{
if (mConfiguration.DoubleBuffered)
{
// Arkaplanı boyamayın (double buffering için gerekli)!
}
else
{
base.OnPaintBackground(e);
}
}
protected override void OnPaint(PaintEventArgs e)
{
if (mBufferImage == null)
{
mBufferImage = new Bitmap(Width, Height);
}
Graphics bufferGrf = Graphics.FromImage(mBufferImage);
Graphics g;
if (mConfiguration.DoubleBuffered)
{
g = bufferGrf;
}
else
{
g = e.Graphics;
}
if (mScreenImage != null)
{
Rectangle dest = new Rectangle(0, 0, Width, Height);
int w = (int)(Width / mConfiguration.ZoomFactor);
int h = (int)(Height / mConfiguration.ZoomFactor);
int x = Left - w / 2 + Width / 2;
int y = Top - h / 2 + Height / 2;
g.DrawImage(
mScreenImage,
dest,
x, y,
w, h,
GraphicsUnit.Pixel);
}
if (mImageMagnifier != null)
{
g.DrawImage(mImageMagnifier, 0, 0, Width, Height);
}
if (mConfiguration.DoubleBuffered)
{
e.Graphics.DrawImage(mBufferImage, 0, 0, Width, Height);
}
}
//--- XML Serialization ---
public class XmlUtility
{
public static void Serialize(Object data, string fileName)
{
Type type = data.GetType();
XmlSerializer xs = new XmlSerializer(type);
XmlTextWriter xmlWriter = new XmlTextWriter(fileName, System.Text.Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
xs.Serialize(xmlWriter, data);
xmlWriter.Close();
}
public static Object Deserialize(Type type, string fileName)
{
XmlSerializer xs = new XmlSerializer(type);
XmlTextReader xmlReader = new XmlTextReader(fileName);
Object data = xs.Deserialize(xmlReader);
xmlReader.Close();
return data;
}
}
Sonuç:
Bu uygulamayı kodlamak gerçekten eğlenceliydi. Bu uygulamayı arkadaşlarımla paylaştım ve gerçekten çok sevdiler. En az benim kadar sizin de seveceğinizi ümit ediyorum.
İyi geceler!
Tarih:
İlk mesaj: 2 Nisan 2007
Lisans:
Bu makale, makale içindeki kod ve dosyalar, The Code Project Open License (CPOL) altında lisanslanmıştır.
Kaynak: http://www.codeproject.com/KB/cs/SimpleMagnifier.aspx
Çeviri: Ben :flowers:
Proje Kodları: http://ul.to/e69rul