diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index ea2f215..5e55d63 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -1,453 +1,477 @@ { - "redirections": [ - { - "source_path": "dotnet-desktop-guide/net/winforms/windows-forms-overview.md", - "redirect_url": "/dotnet/desktop/winforms/overview/?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/overview/index.md", - "redirect_url": "/dotnet/desktop/winforms/windows-forms-overview?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/how-to-create-a-windows-forms-application-from-the-command-line.md", - "redirect_url": "/dotnet/desktop/winforms/get-started/create-app-visual-studio?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/get-started/create-app-visual-studio.md", - "redirect_url": "/dotnet/desktop/winforms/how-to-create-a-windows-forms-application-from-the-command-line?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/events-overview-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/forms/events?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/forms/events.md", - "redirect_url": "/dotnet/desktop/winforms/events-overview-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/automatic-scaling-in-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/forms/autoscale?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/forms/autoscale.md", - "redirect_url": "/dotnet/desktop/winforms/automatic-scaling-in-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/how-to-resize-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/forms/how-to-position-and-resize?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/forms/how-to-position-and-resize.md", - "redirect_url": "/dotnet/desktop/winforms/how-to-resize-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/layout-in-windows-forms-controls.md", - "redirect_url": "/dotnet/desktop/winforms/controls/layout?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/layout.md", - "redirect_url": "/dotnet/desktop/winforms/controls/layout-in-windows-forms-controls?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/label-control-overview-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/controls/labels?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/labels.md", - "redirect_url": "/dotnet/desktop/winforms/controls/label-control-overview-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/varieties-of-custom-controls.md", - "redirect_url": "/dotnet/desktop/winforms/controls/custom?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/custom.md", - "redirect_url": "/dotnet/desktop/winforms/controls/varieties-of-custom-controls?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/custom-control-painting-and-rendering.md", - "redirect_url": "/dotnet/desktop/winforms/controls/custom-painting-drawing?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/custom-painting-drawing.md", - "redirect_url": "/dotnet/desktop/winforms/controls/custom-control-painting-and-rendering?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-add-controls-to-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-add-to-a-form?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-add-to-a-form.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-add-controls-to-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-create-access-keys-for-windows-forms-controls.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-create-access-keys?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-create-access-keys.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-create-access-keys-for-windows-forms-controls?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-set-the-text-displayed-by-a-windows-forms-control.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-set-the-display-text?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-set-the-display-text.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-set-the-text-displayed-by-a-windows-forms-control?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-set-the-image-displayed-by-a-windows-forms-control.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-add-a-picture-to-a-control?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-add-a-picture-to-a-control.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-set-the-image-displayed-by-a-windows-forms-control?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/keyboard-input-in-a-windows-forms-application.md", - "redirect_url": "/dotnet/desktop/winforms/input-keyboard/overview?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/overview.md", - "redirect_url": "/dotnet/desktop/winforms/keyboard-input-in-a-windows-forms-application?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/using-keyboard-events.md", - "redirect_url": "/dotnet/desktop/winforms/input-keyboard/events?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/events.md", - "redirect_url": "/dotnet/desktop/winforms/using-keyboard-events?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/user-input-validation-in-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/input-keyboard/validation?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/validation.md", - "redirect_url": "/dotnet/desktop/winforms/user-input-validation-in-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/how-to-modify-keyboard-input-to-a-standard-control.md", - "redirect_url": "/dotnet/desktop/winforms/input-keyboard/how-to-change-key-press?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/how-to-change-key-press.md", - "redirect_url": "/dotnet/desktop/winforms/how-to-modify-keyboard-input-to-a-standard-control?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/how-to-determine-which-modifier-key-was-pressed.md", - "redirect_url": "/dotnet/desktop/winforms/input-keyboard/how-to-check-modifier-key?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/how-to-check-modifier-key.md", - "redirect_url": "/dotnet/desktop/winforms/how-to-determine-which-modifier-key-was-pressed?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/how-to-handle-keyboard-input-at-the-form-level.md", - "redirect_url": "/dotnet/desktop/winforms/input-keyboard/how-to-handle-forms?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/how-to-handle-forms.md", - "redirect_url": "/dotnet/desktop/winforms/how-to-handle-keyboard-input-at-the-form-level?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/how-to-simulate-events.md", - "redirect_url": "/dotnet/desktop/winforms/how-to-simulate-mouse-and-keyboard-events-in-code?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/mouse-input-in-a-windows-forms-application.md", - "redirect_url": "/dotnet/desktop/winforms/input-mouse/overview?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/overview.md", - "redirect_url": "/dotnet/desktop/winforms/mouse-input-in-a-windows-forms-application?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/mouse-events-in-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/input-mouse/events?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/events.md", - "redirect_url": "/dotnet/desktop/winforms/mouse-events-in-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/drag-and-drop-functionality-in-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/input-mouse/drag-and-drop?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/drag-and-drop.md", - "redirect_url": "/dotnet/desktop/winforms/drag-and-drop-functionality-in-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/mouse-pointers-in-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/input-mouse/how-to-manage-cursor-pointer?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/how-to-manage-cursor-pointer.md", - "redirect_url": "/dotnet/desktop/winforms/mouse-pointers-in-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/how-to-simulate-mouse-and-keyboard-events-in-code.md", - "redirect_url": "/dotnet/desktop/winforms/input-mouse/how-to-simulate-events?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/how-to-simulate-events.md", - "redirect_url": "/dotnet/desktop/winforms/how-to-simulate-mouse-and-keyboard-events-in-code?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/how-to-distinguish-between-clicks-and-double-clicks.md", - "redirect_url": "/dotnet/desktop/winforms/input-mouse/how-to-distinguish-between-clicks-and-double-clicks?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/how-to-distinguish-between-clicks-and-double-clicks.md", - "redirect_url": "/dotnet/desktop/winforms/how-to-distinguish-between-clicks-and-double-clicks?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/creating-event-handlers-in-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/forms/events?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/control-type-recommendations.md", - "redirect_url": "/dotnet/desktop/winforms/controls/custom?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/rendering-a-windows-forms-control.md", - "redirect_url": "/dotnet/desktop/winforms/controls/custom-painting-drawing?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/user-drawn-controls.md", - "redirect_url": "/dotnet/desktop/winforms/controls/custom-painting-drawing?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/how-keyboard-input-works.md", - "redirect_url": "/dotnet/desktop/winforms/input-keyboard/overview?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/how-mouse-input-works-in-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/input-mouse/overview?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/introduction-to-wpf.md", - "redirect_url": "/dotnet/desktop/wpf/overview/?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/overview/index.md", - "redirect_url": "/dotnet/desktop/wpf/introduction-to-wpf?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/getting-started/walkthrough-my-first-wpf-desktop-application.md", - "redirect_url": "/dotnet/desktop/wpf/get-started/create-app-visual-studio?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/get-started/create-app-visual-studio.md", - "redirect_url": "/dotnet/desktop/wpf/getting-started/walkthrough-my-first-wpf-desktop-application?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/app-development/wpf-windows-overview.md", - "redirect_url": "/dotnet/desktop/wpf/windows/index?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/windows/index.md", - "redirect_url": "/dotnet/desktop/wpf/app-development/wpf-windows-overview?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/app-development/dialog-boxes-overview.md", - "redirect_url": "/dotnet/desktop/wpf/windows/dialog-boxes-overview?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/windows/dialog-boxes-overview.md", - "redirect_url": "/dotnet/desktop/wpf/app-development/dialog-boxes-overview?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/app-development/how-to-open-a-window.md", - "redirect_url": "/dotnet/desktop/wpf/windows/how-to-open-window-dialog-box?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/windows/how-to-open-window-dialog-box.md", - "redirect_url": "/dotnet/desktop/wpf/app-development/how-to-open-a-window?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/app-development/how-to-open-a-dialog-box.md", - "redirect_url": "/dotnet/desktop/wpf/windows/how-to-open-window-dialog-box?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/how-to-return-a-dialog-box-result.md", - "redirect_url": "/dotnet/desktop/wpf/windows/how-to-open-window-dialog-box?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/app-development/how-to-open-a-message-box.md", - "redirect_url": "/dotnet/desktop/wpf/windows/how-to-open-message-box?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/windows/how-to-open-message-box.md", - "redirect_url": "/dotnet/desktop/wpf/app-development/how-to-open-a-message-box?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/app-development/how-to-get-and-set-the-main-application-window.md", - "redirect_url": "/dotnet/desktop/wpf/windows/how-to-get-set-main-application-window?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/windows/how-to-get-set-main-application-window.md", - "redirect_url": "/dotnet/desktop/wpf/app-development/how-to-get-and-set-the-main-application-window?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/data/data-binding-overview.md", - "redirect_url": "/dotnet/desktop/wpf/data/index?view=netdesktop-5.0", - "redirect_document_id": true - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/advanced/xaml-in-wpf.md", - "redirect_url": "/dotnet/desktop/wpf/xaml/index?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/xaml/index.md", - "redirect_url": "/dotnet/desktop/wpf/advanced/xaml-in-wpf?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/fundamentals/xaml.md", - "redirect_url": "/dotnet/desktop/wpf/xaml/index?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/fundamentals/xaml-resources-define.md", - "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-overview?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/fundamentals/styles-templates-overview.md", - "redirect_url": "/dotnet/desktop/wpf/controls/styles-templates-overview?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/fundamentals/styles-templates-create-apply-style.md", - "redirect_url": "/dotnet/desktop/wpf/controls/how-to-create-apply-style?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/themes/how-to-create-apply-template.md", - "redirect_url": "/dotnet/desktop/wpf/controls/how-to-create-apply-template?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/advanced/xaml-resources-define.md", - "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-overview?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-overview.md", - "redirect_url": "/dotnet/desktop/wpf/advanced/xaml-resources-define?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/advanced/resources-and-code.md", - "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-and-code?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-and-code.md", - "redirect_url": "/dotnet/desktop/wpf/advanced/resources-and-code?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/advanced/merged-resource-dictionaries.md", - "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-merged-dictionaries?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-merged-dictionaries.md", - "redirect_url": "/dotnet/desktop/wpf/advanced/merged-resource-dictionaries?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-define-and-reference-a-resource.md", - "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-define-and-reference?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-how-to-define-and-reference.md", - "redirect_url": "/dotnet/desktop/wpf/advanced/how-to-define-and-reference-a-resource?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-use-application-resources.md", - "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-use-application?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-how-to-use-application.md", - "redirect_url": "/dotnet/desktop/wpf/advanced/how-to-use-application-resources?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-use-systemfonts.md", - "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-use-system?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-how-to-use-system.md", - "redirect_url": "/dotnet/desktop/wpf/advanced/how-to-use-systemfonts?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-use-system-fonts-keys.md", - "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-use-system?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-use-systemparameters.md", - "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-use-system?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-use-system-parameters-keys.md", - "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-use-system?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/migration/index.md", - "redirect_url": "/dotnet/desktop/wpf/migration/differences-from-net-framework?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/wpf/data/how-to-specify-the-direction-of-the-binding.md", - "redirect_url": "/dotnet/desktop/wpf/data/binding-declarations-overview?view=netdesktop-5.0#binding-direction" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-set-the-tab-order-on-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-set-the-tab-order?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-set-the-tab-order.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-set-the-tab-order-on-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/index.md", - "redirect_url": "/dotnet/desktop/winforms/controls/overview?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/overview.md", - "redirect_url": "/dotnet/desktop/winforms/controls/index?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/autosize-property-overview.md", - "redirect_url": "/dotnet/desktop/winforms/controls/layout?view=netdesktop-5.0#automatic-sizing" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-anchor-controls-on-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-dock-and-anchor?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-dock-and-anchor.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-anchor-controls-on-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-dock-controls-on-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-dock-and-anchor?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/how-to-create-event-handlers-at-run-time-for-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-add-an-event-handler?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-add-an-event-handler.md", - "redirect_url": "/dotnet/desktop/winforms/how-to-create-event-handlers-at-run-time-for-windows-forms?view=netframeworkdesktop-4.8" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/how-to-connect-multiple-events-to-a-single-event-handler-in-windows-forms.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-add-an-event-handler?view=netdesktop-5.0#how-to-use-multiple-events-with-the-same-handler" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/margin-and-padding-in-windows-forms-controls.md", - "redirect_url": "/dotnet/desktop/winforms/controls/layout?view=netdesktop-5.0#margin-and-padding" - }, - { - "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-make-thread-safe-calls-to-windows-forms-controls.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-make-thread-safe-calls?view=netdesktop-5.0" - }, - { - "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-make-thread-safe-calls.md", - "redirect_url": "/dotnet/desktop/winforms/controls/how-to-make-thread-safe-calls-to-windows-forms-controls?view=netframeworkdesktop-4.8" - } - ] + "redirections": [ + { + "source_path": "dotnet-desktop-guide/net/winforms/windows-forms-overview.md", + "redirect_url": "/dotnet/desktop/winforms/overview/?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/overview/index.md", + "redirect_url": "/dotnet/desktop/winforms/windows-forms-overview?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/how-to-create-a-windows-forms-application-from-the-command-line.md", + "redirect_url": "/dotnet/desktop/winforms/get-started/create-app-visual-studio?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/get-started/create-app-visual-studio.md", + "redirect_url": "/dotnet/desktop/winforms/how-to-create-a-windows-forms-application-from-the-command-line?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/events-overview-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/forms/events?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/forms/events.md", + "redirect_url": "/dotnet/desktop/winforms/events-overview-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/automatic-scaling-in-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/forms/autoscale?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/forms/autoscale.md", + "redirect_url": "/dotnet/desktop/winforms/automatic-scaling-in-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/how-to-resize-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/forms/how-to-position-and-resize?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/forms/how-to-position-and-resize.md", + "redirect_url": "/dotnet/desktop/winforms/how-to-resize-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/layout-in-windows-forms-controls.md", + "redirect_url": "/dotnet/desktop/winforms/controls/layout?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/layout.md", + "redirect_url": "/dotnet/desktop/winforms/controls/layout-in-windows-forms-controls?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/label-control-overview-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/controls/labels?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/labels.md", + "redirect_url": "/dotnet/desktop/winforms/controls/label-control-overview-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/varieties-of-custom-controls.md", + "redirect_url": "/dotnet/desktop/winforms/controls/custom?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/custom.md", + "redirect_url": "/dotnet/desktop/winforms/controls/varieties-of-custom-controls?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/custom-control-painting-and-rendering.md", + "redirect_url": "/dotnet/desktop/winforms/controls/custom-painting-drawing?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/custom-painting-drawing.md", + "redirect_url": "/dotnet/desktop/winforms/controls/custom-control-painting-and-rendering?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-add-controls-to-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-add-to-a-form?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-add-to-a-form.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-add-controls-to-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-create-access-keys-for-windows-forms-controls.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-create-access-keys?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-create-access-keys.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-create-access-keys-for-windows-forms-controls?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-set-the-text-displayed-by-a-windows-forms-control.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-set-the-display-text?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-set-the-display-text.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-set-the-text-displayed-by-a-windows-forms-control?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-set-the-image-displayed-by-a-windows-forms-control.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-add-a-picture-to-a-control?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-add-a-picture-to-a-control.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-set-the-image-displayed-by-a-windows-forms-control?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/keyboard-input-in-a-windows-forms-application.md", + "redirect_url": "/dotnet/desktop/winforms/input-keyboard/overview?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/overview.md", + "redirect_url": "/dotnet/desktop/winforms/keyboard-input-in-a-windows-forms-application?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/using-keyboard-events.md", + "redirect_url": "/dotnet/desktop/winforms/input-keyboard/events?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/events.md", + "redirect_url": "/dotnet/desktop/winforms/using-keyboard-events?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/user-input-validation-in-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/input-keyboard/validation?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/validation.md", + "redirect_url": "/dotnet/desktop/winforms/user-input-validation-in-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/how-to-modify-keyboard-input-to-a-standard-control.md", + "redirect_url": "/dotnet/desktop/winforms/input-keyboard/how-to-change-key-press?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/how-to-change-key-press.md", + "redirect_url": "/dotnet/desktop/winforms/how-to-modify-keyboard-input-to-a-standard-control?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/how-to-determine-which-modifier-key-was-pressed.md", + "redirect_url": "/dotnet/desktop/winforms/input-keyboard/how-to-check-modifier-key?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/how-to-check-modifier-key.md", + "redirect_url": "/dotnet/desktop/winforms/how-to-determine-which-modifier-key-was-pressed?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/how-to-handle-keyboard-input-at-the-form-level.md", + "redirect_url": "/dotnet/desktop/winforms/input-keyboard/how-to-handle-forms?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/how-to-handle-forms.md", + "redirect_url": "/dotnet/desktop/winforms/how-to-handle-keyboard-input-at-the-form-level?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-keyboard/how-to-simulate-events.md", + "redirect_url": "/dotnet/desktop/winforms/how-to-simulate-mouse-and-keyboard-events-in-code?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/mouse-input-in-a-windows-forms-application.md", + "redirect_url": "/dotnet/desktop/winforms/input-mouse/overview?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/overview.md", + "redirect_url": "/dotnet/desktop/winforms/mouse-input-in-a-windows-forms-application?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/mouse-events-in-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/input-mouse/events?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/events.md", + "redirect_url": "/dotnet/desktop/winforms/mouse-events-in-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/drag-and-drop-functionality-in-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/input-mouse/drag-and-drop?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/drag-and-drop.md", + "redirect_url": "/dotnet/desktop/winforms/drag-and-drop-functionality-in-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/mouse-pointers-in-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/input-mouse/how-to-manage-cursor-pointer?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/how-to-manage-cursor-pointer.md", + "redirect_url": "/dotnet/desktop/winforms/mouse-pointers-in-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/how-to-simulate-mouse-and-keyboard-events-in-code.md", + "redirect_url": "/dotnet/desktop/winforms/input-mouse/how-to-simulate-events?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/how-to-simulate-events.md", + "redirect_url": "/dotnet/desktop/winforms/how-to-simulate-mouse-and-keyboard-events-in-code?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/how-to-distinguish-between-clicks-and-double-clicks.md", + "redirect_url": "/dotnet/desktop/winforms/input-mouse/how-to-distinguish-between-clicks-and-double-clicks?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/input-mouse/how-to-distinguish-between-clicks-and-double-clicks.md", + "redirect_url": "/dotnet/desktop/winforms/how-to-distinguish-between-clicks-and-double-clicks?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/creating-event-handlers-in-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/forms/events?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/control-type-recommendations.md", + "redirect_url": "/dotnet/desktop/winforms/controls/custom?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/rendering-a-windows-forms-control.md", + "redirect_url": "/dotnet/desktop/winforms/controls/custom-painting-drawing?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/user-drawn-controls.md", + "redirect_url": "/dotnet/desktop/winforms/controls/custom-painting-drawing?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/how-keyboard-input-works.md", + "redirect_url": "/dotnet/desktop/winforms/input-keyboard/overview?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/how-mouse-input-works-in-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/input-mouse/overview?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/introduction-to-wpf.md", + "redirect_url": "/dotnet/desktop/wpf/overview/?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/overview/index.md", + "redirect_url": "/dotnet/desktop/wpf/introduction-to-wpf?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/getting-started/walkthrough-my-first-wpf-desktop-application.md", + "redirect_url": "/dotnet/desktop/wpf/get-started/create-app-visual-studio?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/get-started/create-app-visual-studio.md", + "redirect_url": "/dotnet/desktop/wpf/getting-started/walkthrough-my-first-wpf-desktop-application?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/app-development/wpf-windows-overview.md", + "redirect_url": "/dotnet/desktop/wpf/windows/index?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/windows/index.md", + "redirect_url": "/dotnet/desktop/wpf/app-development/wpf-windows-overview?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/app-development/dialog-boxes-overview.md", + "redirect_url": "/dotnet/desktop/wpf/windows/dialog-boxes-overview?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/windows/dialog-boxes-overview.md", + "redirect_url": "/dotnet/desktop/wpf/app-development/dialog-boxes-overview?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/app-development/how-to-open-a-window.md", + "redirect_url": "/dotnet/desktop/wpf/windows/how-to-open-window-dialog-box?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/windows/how-to-open-window-dialog-box.md", + "redirect_url": "/dotnet/desktop/wpf/app-development/how-to-open-a-window?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/app-development/how-to-open-a-dialog-box.md", + "redirect_url": "/dotnet/desktop/wpf/windows/how-to-open-window-dialog-box?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/how-to-return-a-dialog-box-result.md", + "redirect_url": "/dotnet/desktop/wpf/windows/how-to-open-window-dialog-box?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/app-development/how-to-open-a-message-box.md", + "redirect_url": "/dotnet/desktop/wpf/windows/how-to-open-message-box?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/windows/how-to-open-message-box.md", + "redirect_url": "/dotnet/desktop/wpf/app-development/how-to-open-a-message-box?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/app-development/how-to-get-and-set-the-main-application-window.md", + "redirect_url": "/dotnet/desktop/wpf/windows/how-to-get-set-main-application-window?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/windows/how-to-get-set-main-application-window.md", + "redirect_url": "/dotnet/desktop/wpf/app-development/how-to-get-and-set-the-main-application-window?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/data/data-binding-overview.md", + "redirect_url": "/dotnet/desktop/wpf/data/index?view=netdesktop-5.0", + "redirect_document_id": true + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/xaml-in-wpf.md", + "redirect_url": "/dotnet/desktop/wpf/xaml/index?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/xaml/index.md", + "redirect_url": "/dotnet/desktop/wpf/advanced/xaml-in-wpf?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/fundamentals/xaml.md", + "redirect_url": "/dotnet/desktop/wpf/xaml/index?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/fundamentals/xaml-resources-define.md", + "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-overview?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/fundamentals/styles-templates-overview.md", + "redirect_url": "/dotnet/desktop/wpf/controls/styles-templates-overview?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/fundamentals/styles-templates-create-apply-style.md", + "redirect_url": "/dotnet/desktop/wpf/controls/how-to-create-apply-style?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/themes/how-to-create-apply-template.md", + "redirect_url": "/dotnet/desktop/wpf/controls/how-to-create-apply-template?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/xaml-resources-define.md", + "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-overview?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-overview.md", + "redirect_url": "/dotnet/desktop/wpf/advanced/xaml-resources-define?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/resources-and-code.md", + "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-and-code?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-and-code.md", + "redirect_url": "/dotnet/desktop/wpf/advanced/resources-and-code?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/merged-resource-dictionaries.md", + "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-merged-dictionaries?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-merged-dictionaries.md", + "redirect_url": "/dotnet/desktop/wpf/advanced/merged-resource-dictionaries?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-define-and-reference-a-resource.md", + "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-define-and-reference?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-how-to-define-and-reference.md", + "redirect_url": "/dotnet/desktop/wpf/advanced/how-to-define-and-reference-a-resource?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-use-application-resources.md", + "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-use-application?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-how-to-use-application.md", + "redirect_url": "/dotnet/desktop/wpf/advanced/how-to-use-application-resources?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-use-systemfonts.md", + "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-use-system?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/systems/xaml-resources-how-to-use-system.md", + "redirect_url": "/dotnet/desktop/wpf/advanced/how-to-use-systemfonts?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-use-system-fonts-keys.md", + "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-use-system?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-use-systemparameters.md", + "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-use-system?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-use-system-parameters-keys.md", + "redirect_url": "/dotnet/desktop/wpf/systems/xaml-resources-how-to-use-system?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/migration/index.md", + "redirect_url": "/dotnet/desktop/wpf/migration/differences-from-net-framework?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/data/how-to-specify-the-direction-of-the-binding.md", + "redirect_url": "/dotnet/desktop/wpf/data/binding-declarations-overview?view=netdesktop-5.0#binding-direction" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-set-the-tab-order-on-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-set-the-tab-order?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-set-the-tab-order.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-set-the-tab-order-on-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/index.md", + "redirect_url": "/dotnet/desktop/winforms/controls/overview?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/overview.md", + "redirect_url": "/dotnet/desktop/winforms/controls/index?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/autosize-property-overview.md", + "redirect_url": "/dotnet/desktop/winforms/controls/layout?view=netdesktop-5.0#automatic-sizing" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-anchor-controls-on-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-dock-and-anchor?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-dock-and-anchor.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-anchor-controls-on-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-dock-controls-on-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-dock-and-anchor?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/how-to-create-event-handlers-at-run-time-for-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-add-an-event-handler?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-add-an-event-handler.md", + "redirect_url": "/dotnet/desktop/winforms/how-to-create-event-handlers-at-run-time-for-windows-forms?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/how-to-connect-multiple-events-to-a-single-event-handler-in-windows-forms.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-add-an-event-handler?view=netdesktop-5.0#how-to-use-multiple-events-with-the-same-handler" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/margin-and-padding-in-windows-forms-controls.md", + "redirect_url": "/dotnet/desktop/winforms/controls/layout?view=netdesktop-5.0#margin-and-padding" + }, + { + "source_path": "dotnet-desktop-guide/net/winforms/controls/how-to-make-thread-safe-calls-to-windows-forms-controls.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-make-thread-safe-calls?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/winforms/controls/how-to-make-thread-safe-calls.md", + "redirect_url": "/dotnet/desktop/winforms/controls/how-to-make-thread-safe-calls-to-windows-forms-controls?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/printing-overview.md", + "redirect_url": "/dotnet/desktop/wpf/documents/printing-overview?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/documents/printing-overview.md", + "redirect_url": "/dotnet/desktop/wpf/advanced/printing-overview?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-invoke-a-print-dialog.md", + "redirect_url": "/dotnet/desktop/wpf/documents/how-to-display-print-dialog?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/documents/how-to-display-print-dialog.md", + "redirect_url": "/dotnet/desktop/wpf/advanced/how-to-invoke-a-print-dialog?view=netframeworkdesktop-4.8" + }, + { + "source_path": "dotnet-desktop-guide/net/wpf/advanced/how-to-programmatically-print-xps-files.md", + "redirect_url": "/dotnet/desktop/wpf/documents/how-to-print-xps-files?view=netdesktop-5.0" + }, + { + "source_path": "dotnet-desktop-guide/framework/wpf/documents/how-to-print-xps-files.md", + "redirect_url": "/dotnet/desktop/wpf/advanced/how-to-programmatically-print-xps-files?view=netframeworkdesktop-4.8" + } + ] } diff --git a/dotnet-desktop-guide/net/wpf/documents/how-to-display-print-dialog.md b/dotnet-desktop-guide/net/wpf/documents/how-to-display-print-dialog.md new file mode 100644 index 0000000..e36177f --- /dev/null +++ b/dotnet-desktop-guide/net/wpf/documents/how-to-display-print-dialog.md @@ -0,0 +1,65 @@ +--- +title: How to display a print dialog +description: Learn how to print from your application by using the System.Windows.Controls.PrintDialog class to open a standard Microsoft Windows print dialog box. +ms.date: 08/20/2021 +dev_langs: + - "csharp" + - "vb" +helpviewer_keywords: + - "invoking print dialogs [WPF]" + - "print dialogs [WPF], invoking" +--- + +# How to display a print dialog box (WPF .NET) + +Want to print from your application? You can use the class to open a standard Microsoft Windows print dialog box. Here's how. + +[!INCLUDE [desktop guide under construction](../../includes/desktop-guide-preview-note.md)] + +> [!NOTE] +> The control used for WPF and discussed here, should not be confused with the component of Windows Forms. + +The class provides a single control for print configuration and print job submission. The control is easy to use and can be instantiated by using XAML markup or code. The following examples create and display a `PrintDialog` instance using code. + +You can use the print dialog to configure print options, such as: + +- Print only a specific range of pages. +- Select from printers installed on your computer. You can use the **Microsoft XPS Document Writer** option to create these document types: + - XML Paper Specification (XPS) + - Open XML Paper Specification (OpenXPS) + +## Print the whole document + +This example prints all pages of an XPS document. By default, the code will: + +1. Open a print dialog window that prompts the user to select a printer and start a print job. +1. Instantiate an object with the content of the XPS document. +1. Use the `XpsDocument` object to generate a object that holds all pages of the XPS document. +1. Call the method, passing in the `DocumentPaginator` object, to send all pages to the specified printer. + +:::code language="csharp" source="./snippets/how-to-display-print-dialog/csharp/MainWindow.xaml.cs" id="SampleCode1"::: +:::code language="vb" source="./snippets/how-to-display-print-dialog/vb/MainWindow.xaml.vb" id="SampleCode1"::: + +## Print a page range + +Sometimes you'll only want to print a specific range of pages within an XPS document. To do this, we extend the abstract class to add support for page ranges. By default, the code will: + +1. Open a print dialog window that prompts the user to select a printer, specify a range of pages, and start a print job. +1. Instantiate an object with the content of the XPS document. +1. Use the `XpsDocument` object to generate a default object that holds all pages of the XPS document. +1. Create an instance of an extended `DocumentPaginator` class that supports page ranges, passing in the default `DocumentPaginator` object and the struct returned by the . +1. Call the method, passing in the instance of the extended `DocumentPaginator` class, to send the specified page range to the specified printer. + +:::code language="csharp" source="./snippets/how-to-display-print-dialog/csharp/MainWindow.xaml.cs" id="SampleCode2"::: +:::code language="vb" source="./snippets/how-to-display-print-dialog/vb/MainWindow.xaml.vb" id="SampleCode2"::: + +> [!TIP] +> Although you can use the method to print without opening the print dialog, for performance reasons, it's better to use the method, or one of the many and methods of the . For more about this, see [How to print an XPS file](how-to-print-xps-files.md) and [Printing documents overview](printing-overview.md). + +## See also + +- +- [Documents in WPF](/dotnet/desktop/wpf/advanced/documents-in-wpf?view=netframeworkdesktop-4.8&preserve-view=true) +- [How to print an XPS file](how-to-print-xps-files.md) +- [Printing documents overview](printing-overview.md) +- [Microsoft XPS Document Writer](/windows/win32/printdocs/microsoft-xps-document-writer) diff --git a/dotnet-desktop-guide/net/wpf/documents/how-to-print-xps-files.md b/dotnet-desktop-guide/net/wpf/documents/how-to-print-xps-files.md new file mode 100644 index 0000000..aad1df4 --- /dev/null +++ b/dotnet-desktop-guide/net/wpf/documents/how-to-print-xps-files.md @@ -0,0 +1,59 @@ +--- +title: How to print an XML Paper Specification (XPS) file +description: Learn how to print an XPS file from your application by using the System.Printing.PrintQueue.AddJob method. +ms.date: 09/16/2021 +dev_langs: + - "csharp" + - "vb" +helpviewer_keywords: + - "programmatically print xps files [WPF]" +--- + +# How to print an XPS file (WPF .NET) + +Sometimes you'll want to add a new print job to the print queue without opening a print dialog box. You can use one of the methods to do that. Here's how. + +[!INCLUDE [desktop guide under construction](../../includes/desktop-guide-preview-note.md)] + +In the following example, we use the method, one of the several overloads of `AddJob`, to: + +- Add a new print job for an XML Paper Specification (XPS) document into the default print queue. +- Name the new job. +- Specify whether the XPS document should be validated (by using the `fastCopy` parameter). + +When using the `AddJob(String, String, Boolean)` method, the value of the `fastCopy` parameter is a key consideration: + +- If you set the `fastCopy` parameter to `true`, then XPS validation is skipped and the print job will spool quickly without page-by-page progress feedback. +- If you set the `fastCopy` parameter to `false`, then the thread that calls the `AddJob` method must have a [single-threaded apartment state](xref:System.Threading.ApartmentState), otherwise an exception will be thrown. For more information, see the **Remarks** section for . + +## Add new print jobs to the queue + +This example adds one or more XPS documents to the default queue. The code will: + +1. Use to avoid blocking the UI thread—since there's no async version of `AddJob`. +1. If the `fastCopy` parameter value is `false`, run on a thread with [single-threaded apartment state](xref:System.Threading.ApartmentState). +1. Get a reference to the default of the . +1. Call `AddJob(String, String, Boolean)` on the print queue reference, passing in a job name, an XPS document path, and the `fastCopy` parameter. + +If the queue isn't paused and the printer is working, then a print job will automatically begin printing when it reaches the top of the print queue. + +> [!TIP] +> To avoid the **Save Output File As** dialog when adding a print job to the default queue, ensure that your default printer isn't **Microsoft XPS Document Writer**, **Microsoft Print to PDF**, or other print-to-file options. + +:::code language="csharp" source="./snippets/how-to-print-xps-files/csharp/MainWindow.xaml.cs" id="SampleCode1"::: +:::code language="vb" source="./snippets/how-to-print-xps-files/vb/MainWindow.xaml.vb" id="SampleCode1"::: + +> [!TIP] +> You can also print XPS files by using: +> +> - or methods. +> - and methods. +> +> For more information, see [How to display a print dialog box](how-to-display-print-dialog.md) and [Printing documents overview](printing-overview.md). + +## See also + +- +- [Documents in WPF](/dotnet/desktop/wpf/advanced/documents-in-wpf?view=netframeworkdesktop-4.8&preserve-view=true) +- [How to display a print dialog box](how-to-display-print-dialog.md) +- [Printing documents overview](printing-overview.md) diff --git a/dotnet-desktop-guide/net/wpf/documents/printing-overview.md b/dotnet-desktop-guide/net/wpf/documents/printing-overview.md new file mode 100644 index 0000000..d151032 --- /dev/null +++ b/dotnet-desktop-guide/net/wpf/documents/printing-overview.md @@ -0,0 +1,136 @@ +--- +title: Printing documents overview +description: Learn about the printing and print system management APIs available with Windows Presentation Foundation (WPF). +ms.date: 09/22/2021 +ms.topic: overview +dev_langs: +- "csharp" +- "vb" +helpviewer_keywords: +- "print path [WPF], XPS" +- "printers [WPF], XPSDrv-based" +- "printing [WPF]" +- "PrintQueue class PrintServer class [WPF]" +- "XML Paper Specification (XPS) file format" +- "XPS (XML Paper Specification) file format" +- "XPSDrv-based printers" +- "GDI print path [WPF]" +--- + +# Printing documents overview (WPF .NET) + +With Microsoft .NET, application developers using Windows Presentation Foundation (WPF) have a rich set of printing and print system management APIs. The core of this functionality is the XML Paper Specification (XPS) file format and the XPS print path. + +## About XPS + +XPS is an electronic document format, a spool file format, and a page description language. It's an open document format that uses XML, Open Packaging Conventions, and other industry standards to create cross-platform documents. XPS simplifies the process by which digital documents are created, shared, printed, viewed, and archived. For more on XPS, see [XPS Documents](/windows/desktop/printdocs/documents). + +## XPS print path + +The [XPS print path](/windows-hardware/drivers/print/windows-print-path-overview) is a Windows feature that redefines how printing is handled in Windows applications. XPS print path can replace: + +- Document presentation languages, such as Rich Text Format or Portable Document Format. +- Print spooler formats, such as Windows Metafile or Enhanced Metafile (EMF). +- Page description languages, such as Printer Command Language or PostScript. + +As a result, the XPS print path maintains the XPS format from application publication down to final processing in the printer driver or device. + +The print spooler for XPS documents supports both the XPS print path and the GDI print path. The XPS print path natively consumes an XPS spool file and requires an XPS printer driver. The XPS print path is built on the [XPS printer driver](/windows-hardware/drivers/print/xpsdrv-printer-driver) (XPSDrv) model. + +The benefits of the XPS print path include: + +- WYSIWYG print support. +- Native support of advanced color profiles, such as 32 bits per channel, the CMYK color model, named-colors, n-inks, and transparencies and gradients. +- Improved print performance—XPS features and enhancements are only available to applications that target the XPS print path. +- Industry standard XPS format. + +For basic print scenarios, a simple and intuitive API is available with a standard UI for print configuration and job submission. For advanced scenarios, the API supports UI customization or no UI at all, synchronous or asynchronous printing, and batch printing capabilities. Both simple and advanced options provide print support in full or partial trust modes. + +XPS was designed with extensibility in mind, so features and capabilities can be added to XPS in a modular manner. Extensibility features include: + +- A print schema that supports rapid extension of device capabilities. The public portion of the schema is regularly updated to add desired device capabilities. For more information, see [Extensible architecture](/windows-hardware/drivers/print/extensible-architecture). +- An extensible filter pipeline that XPSDrv drivers use to support both direct and scalable printing of XPS documents. For more information, see [XPSDrv printer drivers](/windows-hardware/drivers/print/xpsdrv-printer-drivers). + +### Print path architecture + +WPF applications natively support the XPS print path, and can use XPS print APIs to print directly to the XPSDrv driver. If the target print queue of the write operation doesn't have an XPSDrv driver, then the and methods of the class will automatically convert content from XPS to GDI format, for the GDI print path. + +The following illustration shows the print subsystem and defines the portions provided by Microsoft and independent software and hardware vendors. + +![Screenshot showing the XPS print system.](~/framework/wpf/advanced/media/printing-overview/xml-paper-specification-print-system.png) + +### Basic XPS printing + +WPF has a printing API that supports both basic and advanced printing features. For those applications that don't require extensive print customization or access to the complete XPS feature set, basic print support might suffice. Basic print support is provided through a [PrintDialog](#printdialog) control that requires minimal configuration, has a familiar UI, and supports many XPS features. + +#### PrintDialog + +The control provides a single entry point for UI, configuration, and XPS job submission. To learn how to instantiate and use the control, see [How to display a print dialog](how-to-display-print-dialog.md). + +### Advanced XPS printing + +To access the complete set of XPS features, use the advanced printing API. Several relevant APIs are described in this section, including [PrintTicket](#printticket-and-printcapabilities), [PrintCapabilities](#printticket-and-printcapabilities), [PrintServer](#printserver-and-printqueue), [PrintQueue](#printserver-and-printqueue), and [XpsDocumentWriter](#xpsdocumentwriter). For a complete list of XPS print path APIs, see the and namespaces. + +#### PrintTicket and PrintCapabilities + +The and classes are the foundation of advanced XPS features. Both objects contain XML formatted structures of print-oriented features that are defined by the print schema. The features include duplexing, collation, two-sided printing, and stapling. A `PrintTicket` instructs a printer how to process a print job. The `PrintCapabilities` class defines the capabilities of a printer. By querying the capabilities of a printer, a `PrintTicket` can be created that takes full advantage of a printer's supported features. Similarly, unsupported features can be avoided. + +The following example queries the `PrintCapabilities` of a printer and creates a `PrintTicket` using code. + +:::code language="csharp" source="./snippets/printing-overview/csharp/MainWindow.xaml.cs" id="GetPrintTicket"::: +:::code language="vb" source="./snippets/printing-overview/vb/MainWindow.xaml.vb" id="GetPrintTicket"::: + +#### PrintServer and PrintQueue + +The class represents a network print server, and the class represents a printer and the output job queue associated with it. Together, these APIs support advanced management of the print jobs for a server. A `PrintServer`, or one of its derived classes, is used to manage a `PrintQueue`. + +The following example creates a and accesses the local computer's using code. + +:::code language="csharp" source="./snippets/printing-overview/csharp/MainWindow.xaml.cs" id="GetPrintQueues"::: +:::code language="vb" source="./snippets/printing-overview/vb/MainWindow.xaml.vb" id="GetPrintQueues"::: + +#### XpsDocumentWriter + +, with its many and methods, is used to add XPS documents to a . For example, the method is used to synchronously add an XPS document with a print ticket to a queue. The method is used to asynchronously add an XPS document with a print ticket to a queue. + +The following example creates an `XpsDocumentWriter` and adds XPS documents, both synchronously and asynchronously, to a `PrintQueue` using code. + +:::code language="csharp" source="./snippets/printing-overview/csharp/MainWindow.xaml.cs" id="PrintXpsDocument"::: +:::code language="vb" source="./snippets/printing-overview/vb/MainWindow.xaml.vb" id="PrintXpsDocument"::: + +## GDI print path + +Although WPF applications natively support the XPS print path, they can also output to the GDI print path by calling one of the or methods of the class and selecting the print queue for a non-XpsDrv printer. + +For applications that don't require XPS functionality or support, the current GDI print path remains unchanged. For more about the GDI print path and the various XPS conversion options, see [Microsoft XPS document converter (MXDC)](/windows/win32/printdocs/microsoft-xps-document-converter--mxdc-) and [XPSDrv printer drivers](/windows-hardware/drivers/print/xpsdrv-printer-drivers). + +## XPSDrv driver model + +The XPS print path improves spooler efficiency by using XPS as the native print spool format when printing to an XPS-enabled printer or driver. Unlike EMF, which represents application output as a series of calls into GDI for rendering services, XPS spool format represents the document. So, when XPS spool files are output to an XPS-based printer driver, they don't require further interpretation as the drivers operate directly on data in that format. This capability eliminates the data and color space conversions required for EMF files and GDI-based print drivers. + +The simplified spooling process eliminates the need to generate an intermediate spool file, such as an EMF data file, before the document is spooled. With smaller spool file sizes, the XPS print path can reduce network traffic and improve print performance. Compared with their EMF equivalents, XPS spool file sizes are typically reduced when using the XPS print path. Spool file size reduction is done through several mechanisms: + +- **Font subsetting**, which only stores the characters used within a document in the XPS file. +- **Advanced graphics support**, which natively supports transparency and gradient primitives to avoid rasterization of XPS content. +- **Identification of common resources**, such as an image of a corporate logo that's used multiple times in a document. Common resources are treated as shared resources and are only loaded once. +- **ZIP compression**, which is used on all XPS documents. + +The XPS spool file size might not be reduced if a vector graphic is highly complex, multi-layered, or inefficiently written. Unlike GDI spool files, XPS files embed device fonts and computer-based fonts for screen display purposes, though both kinds of fonts are subsetted and printer drivers can remove device fonts before transmitting the file to the printer. + +> [!TIP] +> You can also print XPS files by using methods. For more information, see [How to print XPS files](how-to-print-xps-files.md). + +## See also + +- +- +- +- +- +- +- +- [How-to topics](/dotnet/desktop/wpf/advanced/printing-how-to-topics?view=netframeworkdesktop-4.8&preserve-view=true) +- [Documents in WPF](/dotnet/desktop/wpf/advanced/documents-in-wpf?view=netframeworkdesktop-4.8&preserve-view=true) +- [XPS documents](/windows/desktop/printdocs/documents) +- [Document serialization and storage](/dotnet/desktop/wpf/advanced/document-serialization-and-storage?view=netframeworkdesktop-4.8&preserve-view=true) +- [Microsoft XPS document converter (MXDC)](/windows/win32/printdocs/microsoft-xps-document-converter--mxdc-) diff --git a/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/App.xaml b/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/App.xaml new file mode 100644 index 0000000..867d2f0 --- /dev/null +++ b/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/App.xaml.cs b/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/App.xaml.cs new file mode 100644 index 0000000..3128552 --- /dev/null +++ b/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace CodeSampleCsharp +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/AssemblyInfo.cs b/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/AssemblyInfo.cs new file mode 100644 index 0000000..8b5504e --- /dev/null +++ b/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/AssemblyInfo.cs @@ -0,0 +1,10 @@ +using System.Windows; + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/CodeSampleCsharp.csproj b/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/CodeSampleCsharp.csproj new file mode 100644 index 0000000..407932c --- /dev/null +++ b/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/CodeSampleCsharp.csproj @@ -0,0 +1,9 @@ + + + + WinExe + net5.0-windows + true + + + diff --git a/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/MainWindow.xaml b/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/MainWindow.xaml new file mode 100644 index 0000000..4f3cee7 --- /dev/null +++ b/dotnet-desktop-guide/net/wpf/documents/snippets/how-to-display-print-dialog/csharp/MainWindow.xaml @@ -0,0 +1,16 @@ + + +