C# 绑定到裁剪位图SourceRect

C# 绑定到裁剪位图SourceRect,c#,wpf,image,crop,C#,Wpf,Image,Crop,我有一个Rect依赖属性CropMediumRect,它保存图像的裁剪坐标 当我将它绑定到裁剪位图的SourceRect属性时,什么都没有发生。它显示了完整的图像。 但是,当我将CropMediumRect的值直接放在SourceRect中时,它确实起作用 为什么它不能与绑定一起工作 非工作代码: <Image MaxHeight="55" MaxWidth="55" Stretch="Uniform" Margin="5"> &

我有一个Rect依赖属性CropMediumRect,它保存图像的裁剪坐标

当我将它绑定到裁剪位图的SourceRect属性时,什么都没有发生。它显示了完整的图像。 但是,当我将CropMediumRect的值直接放在SourceRect中时,它确实起作用

为什么它不能与绑定一起工作

非工作代码:

<Image MaxHeight="55"
         MaxWidth="55"
         Stretch="Uniform"
         Margin="5">
<Image.Source>
    <CroppedBitmap Source="{Binding Photo.MediumUrl, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                 SourceRect="{Binding CropMediumRect}"   >
    </CroppedBitmap>
</Image.Source>
<Image MaxHeight="55"
         MaxWidth="55"
         Stretch="Uniform"
         Margin="5">
<Image.Source>
    <CroppedBitmap Source="{Binding Photo.MediumUrl, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                            SourceRect="131 0 500 500"   >
    </CroppedBitmap>
</Image.Source>

工作代码:

<Image MaxHeight="55"
         MaxWidth="55"
         Stretch="Uniform"
         Margin="5">
<Image.Source>
    <CroppedBitmap Source="{Binding Photo.MediumUrl, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                 SourceRect="{Binding CropMediumRect}"   >
    </CroppedBitmap>
</Image.Source>
<Image MaxHeight="55"
         MaxWidth="55"
         Stretch="Uniform"
         Margin="5">
<Image.Source>
    <CroppedBitmap Source="{Binding Photo.MediumUrl, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                            SourceRect="131 0 500 500"   >
    </CroppedBitmap>
</Image.Source>

我确实在输出窗口中看到一个错误:BindingExpression生成的值对于目标属性无效。;Value='131,0500500'但我看不出有什么问题。
手动输入值时也是一样。

裁剪位图。SourceRect
要求值为
System.Windows.Int32Rect
类型并绑定到
System.Windows.Rect
类型的属性将不起作用。

而您的
CropMediumRect
System.Windows.Int32Rect
?@dkozl不,它是一个Rect。我已将其更改为Int32Rect,现在它工作正常。多么愚蠢:)如果你回答这个帖子,我会记下你的答案。