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