PrintTicket.PageMediaSize Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft das Seitenformat für das Papier (oder andere Medien) ab, das ein Drucker für einen Druckauftrag verwendet, oder legt dieses fest.
public:
property System::Printing::PageMediaSize ^ PageMediaSize { System::Printing::PageMediaSize ^ get(); void set(System::Printing::PageMediaSize ^ value); };
public System.Printing.PageMediaSize PageMediaSize { get; set; }
member this.PageMediaSize : System.Printing.PageMediaSize with get, set
Public Property PageMediaSize As PageMediaSize
Eigenschaftswert
Ein PageMediaSize Objekt, das die Seitengröße mithilfe eines Namens, einer Größe oder beides darstellt.
Ausnahmen
Der Aufrufen von Code hat versucht, die Eigenschaft mit einem PageMediaSize Objekt festzulegen, das mindestens eine null Eigenschaft aufweist.
- oder -
Der aufrufende Code hat versucht, die Eigenschaft mit einem PageMediaSize Objekt festzulegen, dessen PageMediaSizeName Eigenschaft auf einen Wert festgelegt ist, der nicht in der PageMediaSizeName Enumeration enthalten ist.
- oder -
Der aufrufende Code hat versucht, die Eigenschaft mit einem PageMediaSize Objekt festzulegen, dessen Width Eigenschaft Height auf einen Wert kleiner als 1 festgelegt ist.
Beispiele
Das folgende Beispiel zeigt, wie Sie diese Eigenschaft verwenden, um ein visuelles Element so zu skalieren, dass es in die Ränder des Papiers passt, auf dem es gedruckt werden soll.
/// <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()
Hinweise
Diese Eigenschaft entspricht dem Schlüsselwort des Print SchemasPageMediaSize.
Sie können die Optionen testen, die der Drucker unterstützt, indem Sie die PageMediaSizeCapability Eigenschaft verwenden.