2017-02-21 3 views
0

Ich habe Bild-Zoom-Funktionalität in meiner Bildbox hinzugefügt. Ich möchte den Maßstab des Bildes anzeigen (wie in der linken unteren Kartenseite). Wie würde ich das erreichen?Möglichkeit zur Anzeige der Bildskalierung in der Bildbox

+0

denke ich, dass wir die Zoom-Funktion, um das zu beantworten wissen muss, weil Sie in der Benutzeroberfläche der Aktionen auf den Zoom-Funktionen, die Sie implementiert getan reflektieren fragen. – KernelMode

+0

Haben Sie Ihre Probleme gelöst? – TaW

Antwort

0

Sie können das Ereignis Paint verwenden, um die Skala oben zu zeichnen.

den Zoom Unter der Annahme, symmetrisch in x- und y-Richtung dies ein Beispiel wäre:

private void pictureBox1_Paint(object sender, PaintEventArgs e) 
{ 
    float zoom =100f * pictureBox1.ClientSize.Width/pictureBox1.Image.Width; 
    // this may or may not be necessary, depending on how to have implemented zooming! 
    if (pictureBox1.SizeMode == PictureBoxSizeMode.Normal) zoom = 100f; 

    string s = zoom.ToString("#.#")+ "%"; 
    StringFormat format = new StringFormat() 
     { LineAlignment = StringAlignment.Far, 
     Alignment = StringAlignment.Far }; 
    Rectangle bounds = pictureBox1.ClientRectangle; 
    Rectangle bounds1 = pictureBox1.ClientRectangle; 
    bounds1.Offset(1, 1); 

    using (Font font = new Font("Consolas", 14f)) 
    { 
     e.Graphics.DrawString(s, font, Brushes.White, bounds , format); 
     e.Graphics.DrawString(s, font, Brushes.Black, bounds1 , format); 
    } 
} 

Sie können die Ausrichtungen wählen Sie mögen.

Bitte beachte, dass ich die Zeichenfolge zweimal ziehen, einmal in weiß und einmal in schwarz, um 1 Pixel Offset für alle Hintergründe zu ermöglichen ..

Beachten Sie auch die die Image ist die oistrich; die Landschaft ist die (nicht skalierte BackgroundImage!

enter image description hereenter image description here

+0

Danke! Das hat geholfen. – Illuminati0x5B

Verwandte Themen