0

Windows phone 7 で写真アプリを開発しています。

長方形領域で画像をトリミングすると、トリミングされた画像が画像コントロールの左上隅に配置されます。画像を中央に配置し、完全な画像コントロールにズーム/ストレッチしたい。

図を参照してください。

トリミング前

トリミング後

1 番目の画像はトリミング前を示し、2 番目の画像はトリミング後を示し、画像は左上隅に配置されています。トリミングされた画像は中央に配置する必要があります。また、トリミングされた画像が図 2 に完全に含まれていないことも確認してください。つまり、プレーヤーのブートの一部もトリミングされていますが、トリミングされた画像に表示されていません。これはなぜですか?

コードは次のとおりです。

    void ClipImage()
    {
        RectangleGeometry geo = new RectangleGeometry();

        r = (Rectangle)(from c in ImageLayout.Children where c.Opacity == .5 select    
      c).First();
        GeneralTransform gt = r.TransformToVisual(ImageLayout);
        Point p = gt.Transform(new Point(0, 0));
        geo.Rect = new Rect(p.X, p.Y, r.Width, r.Height);
        ImageMain.Clip = geo;
        r.Visibility = System.Windows.Visibility.Collapsed;

        TranslateTransform t = new TranslateTransform();
        t.X = -p.X;
        t.Y = -p.Y;
        ImageMain.RenderTransform = t;
    }

ここのコードでは、画像を中央に揃えるために、いくつかの値を変更する必要があると思います。これは画像コードを切り取っただけで、他の多くの関数も内部で使用されていますが、気にする必要はないと思います。

4

1 に答える 1

0

一部の XAML 要素を中央揃えにする場合は、 と を使用HorizontaAlignment.CenterVerticalAlignment.Centerます。

于 2013-09-27T13:19:43.347 に答える