2010-12-21 14 views
0

Ich möchte ein benutzerdefiniertes Steuerelement für ein Bild in Bezug auf die dynamische Zoom-Funktionalität basierend auf dem ausgewählten Teil erstellen.Es ist genau wie das Auswahlrechteck im PDF-Reader.Ich verwendete Hierarchie von Stack-Panel, Scroll-Viewer, Leinwand und dann Bild.Kann mir jemand sagen, wie man den ausgewählten Rechteck-Teil wie das Festziel zoom?Dynamisches Zoomen des Bildes auf ausgewähltem Teil

Antwort

0

Eigentlich liegt das Problem in der Berechnung der Zoomrate des ausgewählten Bereichs. Wir müssen den ausgewählten Bereich an die Größe des Fensters anpassen. Dafür erhöhen wir ständig den ausgewählten Teil um einen Prozentpunkt und prüfen jedes Mal mit Die Größe des Fensters. Wenn die Fenstergröße größer ist, hören wir auf, den ausgewählten Bereich zu vergrößern.

Die Logik als

double rate=0; 
    while (true) 
    { 
     if (selectImageHeight * (st.ScaleY + rate) < this.ActualHeight && selectImageWidth * (st.ScaleX + rate) < this.ActualWidth) 
          rate += 0.01; 
         else 
          break; 
    } 
    Zoom(rate); 

Hier o, o1 ein Prozent bedeutet, bedeutet das Fenster. Ein tiefer Zoom ist möglich, indem Sie den ScrollToHorizontalOffset- und den ScrollToVerticalOffset-Wert des Codes verwenden und scrollen.

0

Sie sollten Ihre Drehung, Zoom usw. als RenderTransform auf dem Bild anwenden. Sie müssen dann sicherstellen, dass das Bild in etwas enthalten ist, das die Ergebnisse abschneidet, zum Beispiel ein Raster.

Verwandte Themen