【问题标题】:Zooming Camera Preview is also Resizing the Control缩放相机预览也在调整控件大小
【发布时间】:2016-06-24 22:39:31
【问题描述】:

我想围绕中心点缩放/缩放相机预览,但我不希望控件本身“增长”,这是目前正在发生的事情。我怎样才能做到这一点?

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

..然后当缩放滑块移动时,我有: zoom.ScaleX = sliderZoom.Value; zoom.ScaleY = sliderZoom.Value;

当我移动滑块时,图像会缩放,但整个 CaptureElement 正在增长!

【问题讨论】:

    标签: win-universal-app uwp uwp-xaml


    【解决方案1】:

    您可以尝试使用ScrollViewer,而不是使用RenderTransform

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

    这将使您自动缩放。此外,滚动查看器将保持其大小,但子控件(CaptureElement)将在滚动查看器内增长。

    【讨论】:

    • 谢谢!我希望以某种方式限制图像大小,以便当我将照片保存到文件时,它会反映他们实际看到的内容,但如果我无法弄清楚,我会使用 ScrollViewer。
    • 您可以使用滚动查看器数据 Width/Height 和 ExtentWidth/ExtentHeight 来确定尺寸,并使用 Horizo​​ntalOffset 和 VerticalOffset 来确定可视区域的位置。然后使用它来裁剪并保存图像。
    • 谢谢!这就是我现在正在尝试做的事情,但是虽然 ScaleTransform 在预览中效果很好,但当我缩放时水平/垂直偏移量仍然为 0。似乎应该有一种方法可以向滚动查看器“询问”图像的左上角坐标,但我还没有找到。
    猜你喜欢
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2011-04-10
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多