Share via


PrintTaskOptionChangedEventArgs Class

Definition

Called when a print task option has changed.

public ref class PrintTaskOptionChangedEventArgs sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class PrintTaskOptionChangedEventArgs final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class PrintTaskOptionChangedEventArgs
Public NotInheritable Class PrintTaskOptionChangedEventArgs
Inheritance
Object Platform::Object IInspectable PrintTaskOptionChangedEventArgs
Attributes

Windows requirements

Device family
Windows 10 (introduced in 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (introduced in v1.0)

Remarks

Here is a code snippet that shows how to retrieve the object, when a print task option has changed. First, the app must register to listen for option changes. Once the option is changed, a callback is made to the event listener.

//  Retrieve the advanced Print Task Options.
PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);

// Create a new list option.
PrintCustomItemListOptionDetails margins = printDetailedOptions.CreateItemListOption("Margins", "Margins");
margins.AddItem("WideMargins", "Wide", "Each margin is 20% of the paper size", await wideMarginsIconTask);
margins.AddItem("ModerateMargins", "Moderate", "Each margin is 10% of the paper size", await moderateMarginsIconTask);
margins.AddItem("NarrowMargins", "Narrow", "Each margin is 5% of the paper size", await narrowMarginsIconTask);

// Add the custom option to the option list
printDetailedOptions.DisplayedOptions.Add("Margins");

printDetailedOptions.OptionChanged += printDetailedOptions_OptionChanged;
async void printDetailedOptions_OptionChanged(PrintTaskOptionDetails sender, PrintTaskOptionChangedEventArgs args)
{
    string optionId = args.OptionId as string;
    if (string.IsNullOrEmpty(optionId))
    {
        return;
    }

    if (optionId == "Margins")
    {
        PrintCustomItemListOptionDetails marginsOption = (PrintCustomItemListOptionDetails)sender.Options["Margins"];
        string marginsValue = marginsOption.Value.ToString();

        switch (marginsValue)
        {
            case "WideMargins":
                ApplicationContentMarginTop = 0.2;
                ApplicationContentMarginLeft = 0.2; 
                break;
            case "ModerateMargins":
                ApplicationContentMarginTop = 0.1;
                ApplicationContentMarginLeft = 0.1;
                break;
            case "NarrowMargins":
                ApplicationContentMarginTop = 0.05;
                ApplicationContentMarginLeft = 0.05;
                break;
        }
    }
}

To see the complete listing for this, and other printing scenarios using PrintTask, see Printing and the UWP print sample.

Properties

OptionId

Gets the ID of the print task option that changed.

Applies to