This sample illustrates how to create an instance of a simple PrintDialog and then display it. The sample uses both Extensible Application Markup Language (XAML) and procedural code.
使用PrintDialog显示打印机设置(ShowDialog方法),以及可打印区域的width/height:
3个按钮对应的function如下:
public void InvokePrint(object sender, RoutedEventArgs e)
{
PrintDialog pDialog = new PrintDialog();
pDialog.PageRangeSelection = PageRangeSelection.AllPages;
pDialog.UserPageRangeEnabled = true;
pDialog.ShowDialog();
}
public void GetHeight(object sender, RoutedEventArgs e)
{
PrintDialog pDialog = new PrintDialog();
PrintTicket pt = pDialog.PrintTicket; //force initialization of the dialog's PrintTicket or PrintQueue
txt1.Text = pDialog.PrintableAreaHeight.ToString() + " is the printable height";
}
public void GetWidth(object sender, RoutedEventArgs e)
{
PrintDialog pDialog = new PrintDialog();
PrintQueue pq = pDialog.PrintQueue; //force initialization of the dialog's PrintTicket or PrintQueue
txt2.Text = pDialog.PrintableAreaWidth.ToString() + " is the printable width";
}
{
PrintDialog pDialog = new PrintDialog();
pDialog.PageRangeSelection = PageRangeSelection.AllPages;
pDialog.UserPageRangeEnabled = true;
pDialog.ShowDialog();
}
public void GetHeight(object sender, RoutedEventArgs e)
{
PrintDialog pDialog = new PrintDialog();
PrintTicket pt = pDialog.PrintTicket; //force initialization of the dialog's PrintTicket or PrintQueue
txt1.Text = pDialog.PrintableAreaHeight.ToString() + " is the printable height";
}
public void GetWidth(object sender, RoutedEventArgs e)
{
PrintDialog pDialog = new PrintDialog();
PrintQueue pq = pDialog.PrintQueue; //force initialization of the dialog's PrintTicket or PrintQueue
txt2.Text = pDialog.PrintableAreaWidth.ToString() + " is the printable width";
}
对于PrintDialog,大家并不陌生。而PrintQueue和PrintTicket则是NET3.5新增的两个类。在这个Sample中,这两个类并没有起到任何作用,甚至可以mark掉。