0

非表示の列を含む Grid のスナップショットを作成する必要があります (ColumnDefinition.Width = 0 に設定)。

画面上では問題created imageないように見えますが、すべての列が表示されています(does not respect the ColumnDefinitions)。RenderTargetBitmap が、これらの変更が存在しない別のレイヤー (ビジュアル レイヤーとレイアウト レイヤー) を見ているためです。正しい ColumnDefinitions を使用してグリッドの現実的なスナップショットを取得する機会はありますか? Rectagnel.Fill = VisualBrush を単純に使用することはできません。これは、これらの画像をサイクルで保存する必要があるためです (すべての反復 = 新しい画像)。

このスニペットのような方法を試しました

4

2 に答える 2

1

UpdateLayout()各スナップショットの前に強制する必要がありました。サイクルでサイズを変更しましたが、レイアウトの更新が遅すぎました。

于 2011-11-16T14:55:22.563 に答える
1

のスナップショットを作成する前に、このメソッドを呼び出しますUIElement

public static UIElement GetMeasuredAndArrangedVisual(UIElement visual)
{
    visual.Measure(new Size
    {
        Height = double.PositiveInfinity,
        Width = double.PositiveInfinity
    });

    visual.Arrange(new Rect(0, 0, visual.DesiredSize.Width, visual.DesiredSize.Height));

    visual.UpdateLayout();

    return visual;
}
于 2012-03-06T16:43:47.427 に答える