0

次の XAML をRotateAngleプロパティにバインドしていますが、1 つの "but" でうまく機能します。画像はトリミングされて表示されます。イメージ コントロールは、回転後に更新/サイズ変更されていないようです。画像とスクロールビューアのサイズを強制的に変更する方法はありますか?

<ScrollViewer Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalScrollBarVisibility="Auto" BorderThickness="0" HorizontalScrollBarVisibility="Auto">
            <Image 
                VerticalAlignment="Stretch" HorizontalAlignment="Stretch"  
                Source="{Binding Input, Converter={StaticResource ByteArrayToBitmapConverter}}"
                RenderTransformOrigin="0.5,0.5">
                <Image.RenderTransform>
                    <RotateTransform Angle="{Binding RotateAngle}"></RotateTransform>
                </Image.RenderTransform>
            </Image>
        </ScrollViewer> 
4

4 に答える 4

1

http://www.silverlight.net/content/samples/sl3/toolkitcontrolsamples/run/default.html

このページに行くと、LayoutTransformer というコントロールがあります。そのコントロールのサンプルを参照してください。画像、テキストボックス、リストボックスなどの回転、スケーリング、傾斜を処理します。そこにコードが表示されます。それが役立つことを願っています.!

于 2012-05-29T05:42:11.120 に答える
0

CalculateConstraintScale元の画像スペースに合わせて画像を縮小する場合は、ここから私の方法を 使用できます。Silverlight回転に基づいて画像を縮小するためにトリミングせずに、ビットマップ画像を長方形に収まるように回転および拡大縮小します。

その答えのために作成された動作するテストベッドアプリについては、ここをクリックしてください(下の画像のように見えます):

アプリの画像の例

于 2012-05-29T10:04:37.467 に答える
0

あなたが試すことができます:

<Image x:name="ctrl"
                VerticalAlignment="Stretch" HorizontalAlignment="Stretch"  
                Source="{Binding Input, Converter={StaticResource ByteArrayToBitmapConverter}}"
                RenderTransformOrigin="0.5,0.5">
                <Image.RenderTransform>
                    <RotateTransform Angle="{Binding DataContext.RotateAngle, ElementName=ctrl}"></RotateTransform>
                </Image.RenderTransform>
            </Image>
于 2012-05-29T06:50:13.613 に答える