1

XPS ドキュメントにデータグリッド コンテンツ (行、列) を表示したいのですが、20 列あります。XPSDocumentWriter.Writeメソッドを使用してデータグリッドをXPSに送信すると、すべてではなく一部の列が表示されます.xpsですべての列と行を表示するにはどうすればよいですか(Xceed datagrid xps exportingのように)

どうも

4

1 に答える 1

0

問題はおそらく、XPSDocumentWriter のページサイズに関連するグリッドの幅にあります。

WPF は、指定した要素をそのまま Document に書き込みます。つまり、ページのコンテンツに合わせてサイズが変更されることはありません。

ドキュメントが正しいサイズであると仮定すると (文字を想定してみましょう)、ドキュメントの印刷可能領域を決定し、RenderTransform をグリッドに適用してから XPSDocumentWriter に書き込む必要があります。

それを行うコードは次のようになります。

Grid grd = new Grid();
XpsDocumentWriter wrt = new XpsDocumentWriter();
//Bunch of code to manipulate your grid here

//Now we calculate the scaling required:
double ScaleX = PageWidth / grd.Width; //The page width must be in Device Independent Units
double ScaleY = ScaleX;

grd.RenderTransform = new ScaleTransform(ScaleX, ScaleY);

wrt.Write(grd);

編集:コードを変更して、ScaleX と ScaleY の両方が、グリッドが XpsDocument に完全に収まるようにするために必要な量を指すようにしました。

于 2009-09-03T17:16:39.870 に答える