ClipRect.DefiningGeometry
ndにはとの値ClipRect.RenderedGeometry
のみが含まれますが、 も含まれません。RadiusX
RadiusY
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();
}
}
次に、バインディング定義でこのコンバーターを使用します。
<Rectangle Width="100" Height="100"
Clip="{Binding ElementName=ClipRect, Converter={StaticResource RectangleToGeometryConverter}}">
もちろん、最初にコンバーターをリソースに追加する必要があります。
<Window.Resources>
<local:RectangleToGeometryConverter x:Key="RectangleToGeometryConverter" />
</Window.Resources>