完全填充ViewBox,部分图像区域由Image.Clip确定

时间:2015-05-13 21:55:11

标签: c# image xaml windows-phone-8.1 winrt-xaml

我想要在Windows Phone 8.1应用中使用大图像。出于我的应用程序的目的,我想只显示图像的某个部分,并希望用该特定部分填充整个ViewBox。

我可以使用Image.Clip轻松获取Image的特定部分。但是到目前为止,我一直无法让ViewBox只填充Image.Clip确定的部分。 我使用以下XAML。

     <Pivot>
        <PivotItem Margin="10">
            <Viewbox Stretch="Uniform" StretchDirection="Both">
                <Image Source="http://image.png"
                       Stretch="None">
                    <Image.Clip>
                         <RectangleGeometry Rect="500,100,600,700"/>
                    </Image.Clip>
                </Image>
            </Viewbox>
        </PivotItem>
    </Pivot> 

我在Image和ViewBox上尝试了各种Stretch设置组合。我也尝试过ScaleTransforms,但直到现在还没有运气。

所以我的问题是我想在XAML中做什么,如果是的话,我应该使用哪种XAML代码组合?

1 个答案:

答案 0 :(得分:0)

您可以使用已翻译的ImageBrush填充固定大小的Rectangle,如下所示:

<Viewbox Stretch="Uniform" StretchDirection="Both">
    <Rectangle Width="600" Height="700">
        <Rectangle.Fill>
            <ImageBrush ImageSource="http://image.png"
                        Stretch="None" AlignmentX="Left" AlignmentY="Top">
                <ImageBrush.Transform>
                    <TranslateTransform X="-500" Y="-100"/>
                </ImageBrush.Transform>
            </ImageBrush>
        </Rectangle.Fill>
    </Rectangle>
</Viewbox>