2016-06-24 9 views
0

Ich möchte die Kamera Vorschau um den Mittelpunkt skalieren/zoomen, aber ich will nicht das Steuerelement selbst zu "wachsen", was ist, was gerade passiert. Wie kann ich das machen?Zoomen der Kamera Vorschau ist auch die Größe der Steuerung

<CaptureElement Name="PreviewControl" RenderTransformOrigin="0.5 0.5" Width="400" Height="300" > 
    <CaptureElement.RenderTransform > 
    <ScaleTransform x:Name="zoom" /> 
    </CaptureElement.RenderTransform> 
</CaptureElement> 

..und dann, wenn die Zoom-Schieberegler bewegt habe ich: zoom.ScaleX = sliderZoom.Value; zoom.ScaleY = sliderZoom.Value;

Wenn ich den Schieberegler verschiebe skaliert das Bild, aber das gesamte CaptureElement wächst!

Antwort

0

Statt eine RenderTransform zu verwenden, können Sie versuchen, eine ScrollViewer statt mit:

<ScrollViewer Name="PreviewScroll" ZoomMode="Enabled" Width="400" Height="300"> 
    <CaptureElement Name="PreviewControl" RenderTransformOrigin="0.5 0.5"> 
    </CaptureElement> 
</ScrollViewer> 

, dass Sie automatisch ein- geben. Außerdem behält der Scrollviewer seine Größe bei, aber das untergeordnete Steuerelement (CaptureElement) wird im Scrollviewer vergrößert.

+0

Danke! Ich hatte gehofft, die Bildgröße irgendwie zu beschränken, so dass, wenn ich das Foto in einer Datei speichere, es reflektieren wird, was sie tatsächlich sahen, aber wenn ich das nicht herausfinden kann, werde ich den ScrollViewer machen. – DeannaD

+0

Sie können die Scrollviewer-Daten Width/Height und ExtentWidth/ExtentHeight verwenden, um die Größen zu ermitteln, und HorizontalOffset und VerticalOffset, um die Position des sichtbaren Bereichs zu ermitteln. Und dann verwenden Sie das zum Zuschneiden und Speichern des Bildes. – Stefan

+0

Danke! Genau das versuche ich jetzt, aber während ScaleTransform in der Vorschau gut funktioniert, bleiben die horizontalen/vertikalen Offsets beim Zoomen auf 0. Es scheint, als ob es eine Möglichkeit geben sollte, den Scrollviewer nach der oberen linken Koordinate des Bildes zu fragen, aber das habe ich noch nicht gefunden. – DeannaD