C# 如何在wpf中动态设置默认打印机

C# 如何在wpf中动态设置默认打印机,c#,wpf,windows,printing,C#,Wpf,Windows,Printing,我编写代码以获取默认打印机名称和我在集合中安装的所有打印机名称。但我想动态更改名称中的默认打印机 using System.Drawing.Printing; public MainWindow() { this.InitializeComponent(); PrinterSettings settings = new PrinterSettings(); string DefultPrinterName= settings.Prin

我编写代码以获取默认打印机名称和我在集合中安装的所有打印机名称。但我想动态更改名称中的默认打印机

using System.Drawing.Printing;
public MainWindow()
    {
        this.InitializeComponent();

         PrinterSettings settings = new PrinterSettings();
         string DefultPrinterName= settings.PrinterName;


        foreach (string item in PrinterSettings.InstalledPrinters)
        {
            com_Printers.Items.Add(item);
        }
    }
它的输出将是这样的。


在上图中,默认的打印机名称是“CutePDF Writer”,但我想将“Snagit 8”更改为默认打印机。我该怎么办。

试试这个,它会帮你的

  var query = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
                var printers = query.Get();                   
                foreach (ManagementObject printer in printers)
                {
                    if (printer["name"].ToString() == combox_pinter.SelectedItem.ToString())
                    {
                        printer.InvokeMethod("SetDefaultPrinter", new object[] { combox_pinter.SelectedItem.ToString() });
                    }
                }

将此示例用于您的目标跟踪此链接:您的意思是要将组合框选择更改为最初的Snagit 8还是更改操作系统默认打印机设置?我的意思是操作系统默认打印机设置。