{"record":{"id":"5aae9a6603e09fb4","repo":"dotnet/wpf","slug":"specified-argument-was-out-of-range-of-valid-values-5aae9a","errorCode":null,"errorMessage":"Specified argument was out of range of valid values. (Parameter 'value')","messagePattern":"Specified argument was out of range of valid values\\. \\(Parameter 'value'\\)","errorType":"validation","errorClass":"ArgumentOutOfRangeException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.DotNet.Wpf/src/ReachFramework/PrintConfig/PageOutputQuality.cs","lineNumber":254,"sourceCode":"        /// </summary>\n        /// <remarks>\n        /// If the setting is not specified yet, getter will return 0.\n        /// </remarks>\n        /// <exception cref=\"ArgumentOutOfRangeException\">\n        /// The value to set is not one of the standard <see cref=\"OutputQuality\"/>.\n        /// </exception>\n        public OutputQuality Value\n        {\n            get\n            {\n                return (OutputQuality)this[PrintSchemaTags.Framework.OptionNameProperty];\n            }\n            set\n            {\n                if (value < PrintSchema.OutputQualityEnumMin ||\n                    value > PrintSchema.OutputQualityEnumMax)\n                {\n                    throw new ArgumentOutOfRangeException(nameof(value));\n                }\n\n                this[PrintSchemaTags.Framework.OptionNameProperty] = (int)value;\n            }\n        }\n\n        #endregion Public Properties\n\n        #region Public Methods\n\n        /// <summary>\n        /// Converts the page output quality setting to human-readable string.\n        /// </summary>\n        /// <returns>A string that represents this page output quality setting.</returns>\n        public override string ToString()\n        {\n            return Value.ToString();\n        }","sourceCodeStart":236,"sourceCodeEnd":272,"githubUrl":"https://github.com/dotnet/wpf/blob/81131a70a4c573cd62748a5c36908fc4d662daa9/src/Microsoft.DotNet.Wpf/src/ReachFramework/PrintConfig/PageOutputQuality.cs#L236-L272","documentation":"PageOutputQualitySetting.Value accepts only values within PrintSchema.OutputQualityEnumMin..Max; out-of-range assignments throw ArgumentOutOfRangeException('value'). Quality (draft/normal/high/etc.) is stored as the OptionName property.","triggerScenarios":"Setting PrintTicket.OutputQuality to a value outside the OutputQuality enum's schema range (undefined member or invalid int cast).","commonSituations":"Casting quality ints from user preferences or app settings; enum values from custom quality levels not in the Print Schema; round-tripping tickets between framework versions.","solutions":["Assign only valid OutputQuality enum members (Unknown, Draft, Low, Normal, High, Photographic, etc.).","Validate with Enum.IsDefined before casting raw values.","Default unknown quality values to OutputQuality.Normal.","Catch ArgumentOutOfRangeException and use the queue's default quality."],"exampleFix":"// before\nprintTicket.OutputQuality = (OutputQuality)qualityInt;\n// after\nprintTicket.OutputQuality = Enum.IsDefined(typeof(OutputQuality), qualityInt)\n    ? (OutputQuality)qualityInt : OutputQuality.Normal;","handlingStrategy":"validation","validationCode":"if (Enum.IsDefined(typeof(OutputQuality), rawValue))\n    printTicket.OutputQuality = (OutputQuality)rawValue;","typeGuard":"bool IsValidOutputQuality(object v) => v is int i && i >= PrintSchema.OutputQualityEnumMin && i <= PrintSchema.OutputQualityEnumMax;","tryCatchPattern":"try { printTicket.OutputQuality = value; }\ncatch (ArgumentOutOfRangeException) { printTicket.OutputQuality = OutputQuality.Normal; }","preventionTips":["Use named OutputQuality members only","Validate quality values read from preferences files","Default to Normal for unrecognized quality levels"],"tags":["wpf","printing","argumentoutofrange","enum"],"backgroundTag":"invalid-enum-value","analyzedSha":"81131a70a4c573cd62748a5c36908fc4d662daa9","analyzedAt":"2026-09-14T10:12:48.479Z","contentChangedAt":"2026-09-14T10:12:48.479Z","schemaVersion":2},"datasetVersion":"2026-09-22T01:17:13.364Z"}