سؤال

أريد إظهار محتوى شبكة البيانات (الصفوف والأعمدة) في مستند XPS. لدي 20 عمودًا.عندما أرسلت datagrid إلى XPS باستخدام طريقة XPSDocumentWriter.Write، فإنها تظهر فقط بعض الأعمدة وليس جميعها. كيف يمكنني إظهار جميع الأعمدة والصفوف في xps (مثل تصدير Xceed datagrid xps)

شكرًا

هل كانت مفيدة؟

المحلول

من المحتمل أن تكون المشكلة في عرض شبكتك فيما يتعلق بحجم صفحات XPSDocumentWriter.

سوف يكتب WPF في المستند العنصر الذي تقدمه كما هو.وهذا يعني أنه لن يتم تغيير حجمه بأي شكل من الأشكال ليناسب محتوى الصفحة.

بافتراض أن حجم المستند الصحيح (لنفترض حرفًا)، فإنك تحتاج إلى تحديد المنطقة القابلة للطباعة من المستند وتطبيق 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top