CaptureElement为椭圆形

时间:2014-12-30 14:32:05

标签: xaml windows-phone-8.1 photo win-universal-app

在Windows(手机)8.1运行时,CaptureElement已取代VideoBrush用于预览来自摄像设备的流。我想以椭圆形状显示预览。我以前通过在Ellipse.Fill属性中设置VideoBrush源来做到这一点。我无法使用CaptureElement(Ellipse.Fill必须是Brush)。有没有其他方法可以将CaptureElement塑造成一个圆圈?

在Windows Phone 8.0中看起来如何:

<Ellipse>
 <Ellipse.Fill>
   <VideoBrush x:Name="viewfinderBrush" Stretch="UniformToFill" />
 </Ellipse.Fill>
</Ellipse>

然后我用我的PhotoCaptureDevice设置了源代码

viewfinderBrush.SetSource(_proCameraDevice);

现在我有Ellipse和CaptureElement(默认为方形控件)。正如我所说 - CaptureElement不能设置为Ellipse.Fill属性

1 个答案:

答案 0 :(得分:1)

不,没有直接的方法可以做到这一点。 Windows运行时没有与VideoBrush类似的任何内容,也没有非矩形剪辑。

您可以做的是在矩形窗口中显示预览,但用不透明的蒙版覆盖它,并从中切出椭圆。接近以下的东西(但是你的应用程序的大小,命名等)

    <CaptureElement />
    <Path Fill="{ThemeResource MyOpaqueBackgroundBrush}">
        <Path.Data>
            <GeometryGroup>
                <RectangleGeometry Rect="0,0 300,300" />
                <EllipseGeometry Center="150,150" RadiusX="100" RadiusY="100" />
            </GeometryGroup>
        </Path.Data>
    </Path>