在XAML中使用矩形形状作为剪辑

有没有办法可以使用普通的Rectangle(形状)作为XAML中另一个对象的剪辑的一部分。 看起来我应该能够,但解决方案正在逃避我..

     

我知道我可以使用’RectangleGeometry’类型的方法,但我对上面提到的代码方面的解决方案更感兴趣。

尝试Shape.RenderedGeometry属性 。

  

ClipRect.DefiningGeometryClipRect.RenderedGeometry仅包含RadiusXRadiusY值,但不包含Rect

我不确定你想要实现什么(我从你的样本中不清楚)但你可以编写一个IValueConverter ,它将从引用的Rectangle提取你需要的信息:

 public class RectangleToGeometryConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { var rect = value as Rectangle; if (rect == null || targetType != typeof(Geometry)) { return null; } return new RectangleGeometry(new Rect(new Size(rect.Width, rect.Height))) { RadiusX = rect.RadiusX, RadiusY = rect.RadiusY }; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } } 

然后,您将在绑定定义中使用此转换器:

  

当然,您需要先将转换器添加到资源中: