0

ここに私のコードがあります:

// create image1
var tileControl1 = new FlipCycleTileSmallControl("");
tileControl1.Measure(newSize(159, 159));
tileControl1.Arrange(newRect(0d, 0d, 159, 159));
var writeableBitmap1 = new System.Windows.Media.Imaging.WriteableBitmap(tileControl1, null);
image1.Source = writeableBitmap1;

// create image2 
var tileControl2 = new FlipCycleTileMediumControl("");
tileControl2.Measure(newSize(336, 336));
tileControl2.Arrange(newRect(0d, 0d, 336, 336));
var writeableBitmap2 = new System.Windows.Media.Imaging.WriteableBitmap(tileControl2, null);
image2.Source = writeableBitmap2;

// create image3
var tileControl3 = new FlipCycleTileMediumControl("");
tileControl3.Measure(newSize(691, 336));
tileControl3.Arrange(newRect(0d, 0d, 691, 336));
var writeableBitmap3 = new System.Windows.Media.Imaging.WriteableBitmap(tileControl3, null);
image3.Source = writeableBitmap3;

このコードを使用して、から画像を作成したい

UserControl(FlipCycleTileSmallControl,FlipCycleTileMediumControl,FlipCycleTileMediumControl)

それをIsolatedStorageに保存します。

イメージ 1 はうまくいきますが、イメージ 2 とイメージ 3 は背景が黒でうまくいきません。

私に何ができる?

4

1 に答える 1

0

提供されたコードからどのように結果が得られたかはよくわかりませんが、私が使用する同様のコードに似ています。次の例では、ユーザー コントロールを取得して、イメージを分離ストレージに保存します。後で、このパスを簡単に参照できます。

これがあなたが望んでいたものではない場合、私はそれがあなたにぴったりの解決策を刺激することを願っています.

public static void SaveToIsolatedStorage(this UserControl control, string filename, Size size = new Size())
    {

        var controlWidth = (int) size.Width;
        var controlHeight = (int) size.Height;

        control.Height = controlHeight;
        control.Width = controlWidth;

        control.Arrange(new Rect(0, 0, controlWidth, controlHeight));

        // Create writeable bitmap to save as image
        var wb = new WriteableBitmap(controlWidth, controlHeight);

        // Position child objects
        control.Arrange(new Rect(0, 0, controlWidth, controlHeight));

        // Render element to bitmap
        wb.Render(control, new CompositeTransform());

        // Draw
        wb.Invalidate();

        // At this point you can do what you want with the output of writeable bitmap
        // I recommend saving to isolated storage, the access it locally.

         // Save to isolated storage
        using (var isfs = new IsolatedStorageFileStream(string.Format("/Shared/ShellContent/{0}.jpg", filename), FileMode.Create, IsolatedStorageFile.GetUserStoreForApplication()))
        {
            wb.SaveJpeg(isfs, controlWidth, controlHeight, 0, 100);
        }

    }
于 2014-01-22T04:19:14.223 に答える