2016-06-24 35 views
0

カメラのプレビューを中心点の周りで拡大/縮小したいが、現在進行中のコントロール自体が「成長」しないようにしたい。これどうやってするの?ズームカメラのプレビューもコントロールのサイズを変更しています

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

..andその後、私が持っているズームスライダを移動: zoom.ScaleX = sliderZoom.Valueを。 zoom.ScaleY = sliderZoom.Value;

スライダを動かすと画像は拡大縮小されますが、CaptureElement全体が拡大しています!代わりにRenderTransformを使用して、あなたの代わりにScrollViewerを使用して試みることができる

答えて

0

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

あなたが自動的にズーム与えるだろう。また、スクロールビューアはサイズを保持しますが、子コントロール(CaptureElement)はスクロールビューア内で拡大します。

+0

ありがとうございます!私は何とか画像サイズを制限することを望んでいたので、ファイルに写真を保存すると、実際に見たものが反映されますが、それを理解できない場合はScrollViewerを行います。 – DeannaD

+0

スクロールビューワのデータWidth/HeightとExtentWidth/ExtentHeightを使用してサイズを確認し、Horizo​​ntalOffsetとVerticalOffsetを使用して表示可能領域の位置を把握することができます。そしてそれを使ってイメージをトリミングして保存します。 – Stefan

+0

ありがとう!これは私が今やろうとしていることですが、ScaleTransformはプレビューでうまく機能しますが、ズームすると水平/垂直オフセットは0のままです。画像の左上の座標をスクロールビューアに「質問」する方法があるはずですが、まだ見つかりませんでした。 – DeannaD

関連する問題