在Windows Phone 8应用程序中使用椭圆形状裁剪图像?

时间:2015-07-16 08:16:25

标签: c# xaml windows-phone-8

我正在尝试使用椭圆形状裁剪我的图像。我可以使用矩形进行裁剪,但椭圆无法做到。

    void ClipImage()
    {
        EllipseGeometry geo = new EllipseGeometry();

        r = (Ellipse)(from c in LayoutRoot.Children where c.Opacity == .5 select c).First();
        GeneralTransform gt = r.TransformToVisual(LayoutRoot);
        Point p = gt.Transform(new Point(0, 0));
        geo.Rect = new Rect(p.X, p.Y, r.Width, r.Height);
        image1.Clip = geo;
        r.Visibility = System.Windows.Visibility.Collapsed;

        TranslateTransform t = new TranslateTransform();
        t.X = -p.X;
        t.Y = -p.Y;
        image1.RenderTransform = t;
    }

r是椭圆,p是

 GeneralTransform gt = ((Ellipse)sender).TransformToVisual(LayoutRoot);
 Point p = gt.Transform(new Point(0, 0));

1 个答案:

答案 0 :(得分:1)

可能值得使用ImageBrush。你不需要剪辑你的图像。

<Ellipse ... >
    <Ellipse.Fill>
        <ImageBrush ImageSource="..."/>
    </Ellipse.Fill>
</Ellipse>