PageMediaSize 类

定义

描述纸张或其他介质的页大小。

public ref class PageMediaSize sealed
public sealed class PageMediaSize
type PageMediaSize = class
Public NotInheritable Class PageMediaSize
继承
PageMediaSize

示例

以下示例演示如何使用此类缩放视觉元素,使其适合打印纸张的边距。

/// <summary>
///   Returns a scaled copy of a given visual transformed to
///   fit for printing to a specified print queue.</summary>
/// <param name="v">
///   The visual to be printed.</param>
/// <param name="pq">
///   The print queue to be output to.</param>
/// <returns>
///   The root element of the transformed visual.</returns>
private Visual PerformTransform(Visual v, PrintQueue pq)
{
    ContainerVisual root = new ContainerVisual();
    const double inch = 96;

    // Set the margins.
    double xMargin = 1.25 * inch;
    double yMargin = 1 * inch;

    PrintTicket pt = pq.UserPrintTicket;
    Double printableWidth = pt.PageMediaSize.Width.Value;
    Double printableHeight = pt.PageMediaSize.Height.Value;

    Double xScale = (printableWidth - xMargin * 2) / printableWidth;
    Double yScale = (printableHeight - yMargin * 2) / printableHeight;

    root.Children.Add(v);
    root.Transform = new MatrixTransform(xScale, 0, 0, yScale, xMargin, yMargin);

    return root;
}// end:PerformTransform()
''' <summary>
'''   Returns a scaled copy of a given visual transformed to
'''   fit for printing to a specified print queue.</summary>
''' <param name="v">
'''   The visual to be printed.</param>
''' <param name="pq">
'''   The print queue to be output to.</param>
''' <returns>
'''   The root element of the transformed visual.</returns>
Private Function PerformTransform(ByVal v As Visual, ByVal pq As PrintQueue) As Visual
    Dim root As New ContainerVisual()
    Const inch As Double = 96

    ' Set the margins.
    Dim xMargin As Double = 1.25 * inch
    Dim yMargin As Double = 1 * inch

    Dim pt As PrintTicket = pq.UserPrintTicket
    Dim printableWidth As Double = pt.PageMediaSize.Width.Value
    Dim printableHeight As Double = pt.PageMediaSize.Height.Value

    Dim xScale As Double = (printableWidth - xMargin * 2) / printableWidth
    Dim yScale As Double = (printableHeight - yMargin * 2) / printableHeight

    root.Children.Add(v)
    root.Transform = New MatrixTransform(xScale, 0, 0, yScale, xMargin, yMargin)

    Return root
End Function ' end:PerformTransform()

注解

有关包含与媒体大小 PageMediaSize 相同的信息的类,以及有关页面的可图像区域的信息,请参阅 PrintDocumentImageableArea

注意

命名空间中的 System.Printing 类不支持在 Windows 服务或 ASP.NET 应用程序或服务中使用。 尝试从这些应用程序类型之一使用这些类可能会产生意外问题,例如服务性能降低和运行时异常。

如果要从Windows 窗体应用程序打印,请参阅 System.Drawing.Printing 命名空间。

构造函数

PageMediaSize(Double, Double)

使用宽度和高度初始化 PageMediaSize 类的一个新实例。

PageMediaSize(PageMediaSizeName)

使用指定的 PageMediaSize 初始化 PageMediaSizeName 类的新实例。

PageMediaSize(PageMediaSizeName, Double, Double)

使用指定的 PageMediaSize 和宽度及高度初始化 PageMediaSizeName 类的一个新实例。

属性

Height

获取页面高度。

PageMediaSizeName

获取纸张或其他介质页大小的名称。

Width

获取页面的宽度。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

显示纸张或其他介质的页大小。

适用于