diff --git a/docs/framework/winforms/windows-forms-data-binding.md b/docs/framework/winforms/windows-forms-data-binding.md index 0d97799a2bcf0..220e5fbe9ae2c 100644 --- a/docs/framework/winforms/windows-forms-data-binding.md +++ b/docs/framework/winforms/windows-forms-data-binding.md @@ -45,7 +45,7 @@ Data binding in Windows Forms gives you the means to display and make changes to [How to: Ensure the Selected Row in a Child Table Remains at the Correct Position](../../../docs/framework/winforms/ensure-the-selected-row-in-a-child-table-correct.md) Shows how to ensure the selected row of a child table does not change, when a change is made to a field of the parent table. - Also see [Interfaces Related to Data Binding](https://msdn.microsoft.com/library/41e17s4b\(v=vs.110\)), [How to: Navigate Data in Windows Forms](https://msdn.microsoft.com/library/b63ha24w\(v=vs.110\)), [How to: Create a Simple-Bound Control on a Windows Form](https://msdn.microsoft.com/library/sw223a62\(v=vs.110\)). + Also see [Interfaces Related to Data Binding](interfaces-related-to-data-binding.md), [How to: Navigate Data in Windows Forms](how-to-navigate-data-in-windows-forms.md), and [How to: Create a Simple-Bound Control on a Windows Form](how-to-create-a-simple-bound-control-on-a-windows-form.md). ## Reference diff --git a/docs/framework/winforms/windows-forms-security.md b/docs/framework/winforms/windows-forms-security.md index 753f8f8fad610..738e402b73ad1 100644 --- a/docs/framework/winforms/windows-forms-security.md +++ b/docs/framework/winforms/windows-forms-security.md @@ -27,10 +27,10 @@ Windows Forms features a security model that is code-based (security levels are Describes performing window manipulation, using the Clipboard, and making calls to unmanaged code in a semi-trusted environment. ## Related Sections - [NIB: Default Security Policy](https://msdn.microsoft.com/library/2c086873-0894-4f4d-8f7e-47427c1a3b55) + [Default Security Policy](https://docs.microsoft.com/previous-versions/dotnet/netframework-4.0/03kwzyfc(v=vs.100)) Lists the default permissions granted in the Full Trust, Local Intranet, and Internet permission sets. - [NIB: General Security Policy Administration](https://msdn.microsoft.com/library/5121fe35-f0e3-402c-94ab-4f35b0a87b4b) + [General Security Policy Administration](https://docs.microsoft.com/previous-versions/dotnet/netframework-4.0/ed5htz45(v=vs.100)) Gives information about the administering the .NET Framework security policy and elevating permissions. [Dangerous Permissions and Policy Administration](../../../docs/framework/misc/dangerous-permissions-and-policy-administration.md) @@ -39,7 +39,7 @@ Windows Forms features a security model that is code-based (security levels are [Secure Coding Guidelines](../../../docs/standard/security/secure-coding-guidelines.md) Links to topics that explain the best practices for securely writing code against the .NET Framework. - [NIB: Requesting Permissions](https://msdn.microsoft.com/library/0447c49d-8cba-45e4-862c-ff0b59bebdc2) + [Requesting Permissions](https://docs.microsoft.com/previous-versions/dotnet/netframework-4.0/yd267cce(v=vs.100)) Discusses the use of attributes to let the runtime know what permissions your code needs to run. [Key Security Concepts](../../../docs/standard/security/key-security-concepts.md) @@ -48,8 +48,8 @@ Windows Forms features a security model that is code-based (security levels are [Code Access Security Basics](../../../docs/framework/misc/code-access-security-basics.md) Discusses the basics of working with the .NET Framework run time security policy. - [NIB: Determining When to Modify Security Policy](https://msdn.microsoft.com/library/af749b17-e461-409d-84b9-a3d44789db16) + [Determining When to Modify Security Policy](https://docs.microsoft.com/previous-versions/dotnet/netframework-4.0/xky659fc(v=vs.100)) Explains how to determine when your applications need to diverge from the default security policy. - [NIB: Deploying Security Policy](https://msdn.microsoft.com/library/f936c1e5-033b-4bd9-a3bd-a39ba733a681) + [Deploying Security Policy](https://docs.microsoft.com/previous-versions/dotnet/netframework-4.0/13wcxx6y(v=vs.100)) Discusses the best manner for deploying security policy changes. diff --git a/docs/framework/wpf/advanced/annotations-overview.md b/docs/framework/wpf/advanced/annotations-overview.md index d3824b92107d2..477d0bd4b119c 100644 --- a/docs/framework/wpf/advanced/annotations-overview.md +++ b/docs/framework/wpf/advanced/annotations-overview.md @@ -69,4 +69,4 @@ Writing notes or comments on paper documents is such a commonplace activity that - [ContextMenu Overview](../../../../docs/framework/wpf/controls/contextmenu-overview.md) - [Commanding Overview](../../../../docs/framework/wpf/advanced/commanding-overview.md) - [Flow Document Overview](../../../../docs/framework/wpf/advanced/flow-document-overview.md) -- [How to: Add a Command to a MenuItem](https://msdn.microsoft.com/library/013d68a0-5373-4a68-bd91-5de574307370) +- [How to: Add a Command to a MenuItem](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms741839(v=vs.90)) diff --git a/docs/framework/wpf/advanced/commanding-overview.md b/docs/framework/wpf/advanced/commanding-overview.md index 3746774fe53e8..a52fac4d37dcd 100644 --- a/docs/framework/wpf/advanced/commanding-overview.md +++ b/docs/framework/wpf/advanced/commanding-overview.md @@ -185,5 +185,5 @@ ms.assetid: bc208dfe-367d-426a-99de-52b7e7511e81 - [Input Overview](../../../../docs/framework/wpf/advanced/input-overview.md) - [Routed Events Overview](../../../../docs/framework/wpf/advanced/routed-events-overview.md) - [Implement ICommandSource](../../../../docs/framework/wpf/advanced/how-to-implement-icommandsource.md) -- [How to: Add a Command to a MenuItem](https://msdn.microsoft.com/library/013d68a0-5373-4a68-bd91-5de574307370) +- [How to: Add a Command to a MenuItem](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms741839(v=vs.90)) - [Create a Custom RoutedCommand Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Input%20and%20Commands/CustomRoutedCommand) diff --git a/docs/framework/wpf/advanced/drawing-formatted-text.md b/docs/framework/wpf/advanced/drawing-formatted-text.md index 5f3c6b54bb680..1831447cdeddd 100644 --- a/docs/framework/wpf/advanced/drawing-formatted-text.md +++ b/docs/framework/wpf/advanced/drawing-formatted-text.md @@ -79,7 +79,7 @@ Example of an image brush applied to the stroke and highlight ![Sphere following the path geometry of text](../../../../docs/framework/wpf/advanced/media/textpathgeometry01.gif "TextPathGeometry01") Sphere following the path geometry of text - For more information, see [How to: Create a PathGeometry Animation for Text](https://msdn.microsoft.com/library/29f8051e-798a-463f-a926-a099a99e9c67). + For more information, see [How to: Create a PathGeometry Animation for Text](https://docs.microsoft.com/previous-versions/dotnet/netframework-4.0/ms743610(v=vs.100)). You can create other interesting uses for formatted text once it has been converted to a object. For example, you can clip video to display inside it. @@ -122,4 +122,4 @@ Video displaying in the path geometry of text - [Documents in WPF](../../../../docs/framework/wpf/advanced/documents-in-wpf.md) - [Typography in WPF](../../../../docs/framework/wpf/advanced/typography-in-wpf.md) - [Create Outlined Text](../../../../docs/framework/wpf/advanced/how-to-create-outlined-text.md) -- [How to: Create a PathGeometry Animation for Text](https://msdn.microsoft.com/library/29f8051e-798a-463f-a926-a099a99e9c67) +- [How to: Create a PathGeometry Animation for Text](https://docs.microsoft.com/previous-versions/dotnet/netframework-4.0/ms743610(v=vs.100)) diff --git a/docs/framework/wpf/advanced/graphics-rendering-tiers.md b/docs/framework/wpf/advanced/graphics-rendering-tiers.md index 8e86686bf253c..53a2aa2c07e15 100644 --- a/docs/framework/wpf/advanced/graphics-rendering-tiers.md +++ b/docs/framework/wpf/advanced/graphics-rendering-tiers.md @@ -84,7 +84,7 @@ A rendering tier defines a level of graphics hardware capability and performance |Rasterized content that uses |Any content rendered by using the method of .| |Tiled content that uses |Any tiled content in which the property of the is set to .| |Surfaces that exceed the maximum texture size of the graphics hardware|For most graphics hardware, large surfaces are 2048x2048 or 4096x4096 pixels in size.| -|Any operation whose video RAM requirement exceeds the memory of the graphics hardware|You can monitor application video RAM usage by using the Perforator tool that is included in the [WPF Performance Suite](https://msdn.microsoft.com/library/67cafaad-57ad-4ecb-9c08-57fac144393e) in the Windows SDK.| +|Any operation whose video RAM requirement exceeds the memory of the graphics hardware|You can monitor application video RAM usage by using the Perforator tool that is included in the [WPF Performance Suite](https://docs.microsoft.com/previous-versions/dotnet/netframework-4.0/aa969767(v=vs.100)) in the Windows SDK.| |Layered windows|Layered windows allow [!INCLUDE[TLA2#tla_winclient](../../../../includes/tla2sharptla-winclient-md.md)] applications to render content to the screen in a non-rectangular window. On operating systems that support Windows Display Driver Model (WDDM), such as [!INCLUDE[TLA2#tla_winvista](../../../../includes/tla2sharptla-winvista-md.md)] and [!INCLUDE[win7](../../../../includes/win7-md.md)], layered windows are hardware accelerated. On other systems, such as [!INCLUDE[winxp](../../../../includes/winxp-md.md)], layered windows are rendered by software with no hardware acceleration.

You can enable layered windows in [!INCLUDE[TLA2#tla_winclient](../../../../includes/tla2sharptla-winclient-md.md)] by setting the following properties:

- =
- = `true`
- = | @@ -111,7 +111,7 @@ A rendering tier defines a level of graphics hardware capability and performance |Perforator|Use for analyzing rendering behavior.| |Visual Profiler|Use for profiling the use of [!INCLUDE[TLA2#tla_winclient](../../../../includes/tla2sharptla-winclient-md.md)] services, such as layout and event handling, by elements in the visual tree.| - The WPF Performance Suite provides a rich, graphical view of performance data. For more information about WPF performance tools, see [WPF Performance Suite](https://msdn.microsoft.com/library/67cafaad-57ad-4ecb-9c08-57fac144393e). + The WPF Performance Suite provides a rich, graphical view of performance data. For more information about WPF performance tools, see [WPF Performance Suite](https://docs.microsoft.com/previous-versions/dotnet/netframework-4.0/aa969767(v=vs.100)). ### DirectX Diagnostic Tool The [!INCLUDE[TLA2#tla_dx](../../../../includes/tla2sharptla-dx-md.md)] Diagnostic Tool, Dxdiag.exe, is designed to help you troubleshoot [!INCLUDE[TLA2#tla_dx](../../../../includes/tla2sharptla-dx-md.md)]-related issues. The default installation folder for the [!INCLUDE[TLA2#tla_dx](../../../../includes/tla2sharptla-dx-md.md)] Diagnostic Tool is: @@ -127,6 +127,6 @@ DirectX Diagnostic Tool main window - - - [Optimizing WPF Application Performance](../../../../docs/framework/wpf/advanced/optimizing-wpf-application-performance.md) -- [WPF Performance Suite](https://msdn.microsoft.com/library/67cafaad-57ad-4ecb-9c08-57fac144393e) +- [WPF Performance Suite](https://docs.microsoft.com/previous-versions/dotnet/netframework-4.0/aa969767(v=vs.100)) - [Graphics Rendering Registry Settings](../../../../docs/framework/wpf/graphics-multimedia/graphics-rendering-registry-settings.md) - [Animation Tips and Tricks](../../../../docs/framework/wpf/graphics-multimedia/animation-tips-and-tricks.md) diff --git a/docs/framework/wpf/advanced/handwriting-recognition.md b/docs/framework/wpf/advanced/handwriting-recognition.md index fcb6ebf139756..f1488655740f4 100644 --- a/docs/framework/wpf/advanced/handwriting-recognition.md +++ b/docs/framework/wpf/advanced/handwriting-recognition.md @@ -13,7 +13,7 @@ ms.assetid: f4e8576d-e731-4bac-9818-22e2ae636636 This section discusses the fundamentals of recognition as it pertains to digital ink in the WPF platform. ## Recognition Solutions - The following example shows how to recognize ink using the [Microsoft.Ink.InkCollector](https://msdn.microsoft.com/library/microsoft.ink.inkcollector\(v=vs.90\).aspx) class. + The following example shows how to recognize ink using the [Microsoft.Ink.InkCollector](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583683(v=vs.90)) class. > [!NOTE] > This sample requires that handwriting recognizers be installed on the system. @@ -28,4 +28,4 @@ This section discusses the fundamentals of recognition as it pertains to digital [!code-vb[InkRecognition#2](../../../../samples/snippets/visualbasic/VS_Snippets_Wpf/InkRecognition/VisualBasic/Window1.xaml.vb#2)] ## See also -- [Microsoft.Ink.InkCollector](https://msdn.microsoft.com/library/microsoft.ink.inkcollector\(v=vs.90\).aspx) +- [Microsoft.Ink.InkCollector](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583683(v=vs.90)) diff --git a/docs/framework/wpf/advanced/how-to-analyze-ink-with-analysis-hints.md b/docs/framework/wpf/advanced/how-to-analyze-ink-with-analysis-hints.md index 204e04a276322..c98333a0c0acf 100644 --- a/docs/framework/wpf/advanced/how-to-analyze-ink-with-analysis-hints.md +++ b/docs/framework/wpf/advanced/how-to-analyze-ink-with-analysis-hints.md @@ -12,10 +12,10 @@ helpviewer_keywords: ms.assetid: d4421ed4-77f5-4640-829e-9f1de50b2ff2 --- # How to: Analyze Ink with Analysis Hints -An [System.Windows.Ink.AnalysisHintNode](https://msdn.microsoft.com/library/system.windows.ink.analysishintnode(v=vs.100).aspx) provides a hint for the [System.Windows.Ink.InkAnalyzer](https://msdn.microsoft.com/library/system.windows.ink.inkanalyzer(v=vs.100).aspx) to which it is attached. The hint applies to the area specified by the [System.Windows.Ink.ContextNode.Location%2A](https://msdn.microsoft.com/library/system.windows.ink.contextnode.location(v=vs.100).aspx) property of the [System.Windows.Ink.AnalysisHintNode](https://msdn.microsoft.com/library/system.windows.ink.analysishintnode(v=vs.100).aspx) and provides extra context to the ink analyzer to improve recognition accuracy. The [System.Windows.Ink.InkAnalyzer](https://msdn.microsoft.com/library/system.windows.ink.inkanalyzer(v=vs.100).aspx) applies this context information when analyzing ink obtained from within the hint's area. +An [System.Windows.Ink.AnalysisHintNode](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms610344(v=vs.90)) provides a hint for the [System.Windows.Ink.InkAnalyzer](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms616754(v=vs.90)) to which it is attached. The hint applies to the area specified by the [System.Windows.Ink.ContextNode.Location%2A](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms594508(v=vs.90)) property of the [System.Windows.Ink.AnalysisHintNode](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms610344(v=vs.90)) and provides extra context to the ink analyzer to improve recognition accuracy. The [System.Windows.Ink.InkAnalyzer](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms616754(v=vs.90)) applies this context information when analyzing ink obtained from within the hint's area. ## Example - The following example is an application that uses multiple [System.Windows.Ink.AnalysisHintNode](https://msdn.microsoft.com/library/system.windows.ink.analysishintnode(v=vs.100).aspx) objects on a form that accepts ink input. The application uses the [System.Windows.Ink.AnalysisHintNode.Factoid%2A](https://msdn.microsoft.com/library/system.windows.ink.analysishintnode.factoid(v=vs.100)) property to provide context information for each entry on the form. The application uses background analysis to analyze the ink and clears the form of all ink five seconds after the user stops adding ink. + The following example is an application that uses multiple [System.Windows.Ink.AnalysisHintNode](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms610344(v=vs.90)) objects on a form that accepts ink input. The application uses the [System.Windows.Ink.AnalysisHintNode.Factoid%2A](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms594341(v=vs.90)) property to provide context information for each entry on the form. The application uses background analysis to analyze the ink and clears the form of all ink five seconds after the user stops adding ink. [!code-xaml[HowToAnalyzeInk#1](../../../../samples/snippets/csharp/VS_Snippets_Wpf/HowToAnalyzeInk/CSharp/FormAnalyzer.xaml#1)] diff --git a/docs/framework/wpf/advanced/how-to-use-a-thicknessconverter-object.md b/docs/framework/wpf/advanced/how-to-use-a-thicknessconverter-object.md index 9c5fb17765c46..a037d4ee08c49 100644 --- a/docs/framework/wpf/advanced/how-to-use-a-thicknessconverter-object.md +++ b/docs/framework/wpf/advanced/how-to-use-a-thicknessconverter-object.md @@ -24,6 +24,6 @@ ms.assetid: 52682194-d7fd-499c-8005-73fcc84e7b2c - - - -- [How to: Change the Margin Property](https://msdn.microsoft.com/library/8a313efd-5f99-4097-b4c1-8fa49d8379a2) -- [How to: Convert a ListBoxItem to a new Data Type](https://msdn.microsoft.com/library/7a080b88-184e-4b27-bb61-d42bafba9727) +- [How to: Change the Margin Property](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms750561(v=vs.90)) +- [How to: Convert a ListBoxItem to a new Data Type](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms749147(v=vs.90)) - [Panels Overview](../../../../docs/framework/wpf/controls/panels-overview.md) diff --git a/docs/framework/wpf/advanced/printing-how-to-topics.md b/docs/framework/wpf/advanced/printing-how-to-topics.md index 63445a13167c8..92704c11e8550 100644 --- a/docs/framework/wpf/advanced/printing-how-to-topics.md +++ b/docs/framework/wpf/advanced/printing-how-to-topics.md @@ -25,9 +25,6 @@ The topics in this section demonstrate how to use the printing and print system [Enumerate a Subset of Print Queues](../../../../docs/framework/wpf/advanced/how-to-enumerate-a-subset-of-print-queues.md) Instructions for generating a list of printers having certain characteristics. - [NOTINBUILD: How to: Extend the Print Schema and Create New Print System Classes](https://msdn.microsoft.com/library/a3600218-1ea5-478a-9853-6560464f2885) - Extended discussion of how managed code programmers can extend the Print Schema to specialty printing devices or printers with new or uncommon features. - [Get Print System Object Properties Without Reflection](../../../../docs/framework/wpf/advanced/how-to-get-print-system-object-properties-without-reflection.md) Instructions for how to discover at runtime print system object's properties and their types. diff --git a/docs/framework/wpf/advanced/printing-overview.md b/docs/framework/wpf/advanced/printing-overview.md index 6fa7d9826d80c..96fdd8062948b 100644 --- a/docs/framework/wpf/advanced/printing-overview.md +++ b/docs/framework/wpf/advanced/printing-overview.md @@ -25,13 +25,13 @@ With Microsoft .NET Framework, application developers using Windows Presentation ## About XPS [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] is an electronic document format, a spool file format and a page description language. It is an open document format that uses [!INCLUDE[TLA#tla_xml](../../../../includes/tlasharptla-xml-md.md)], [!INCLUDE[TLA#tla_opc](../../../../includes/tlasharptla-opc-md.md)], and other industry standards to create cross-platform documents. [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] simplifies the process by which digital documents are created, shared, printed, viewed, and archived. For additional information on [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)], see [XPS Documents](/windows/desktop/printdocs/documents). - Several techniques for printing [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] based content using [!INCLUDE[TLA2#tla_wpf](../../../../includes/tla2sharptla-wpf-md.md)] are demonstrated in [Programmatically Print XPS Files](../../../../docs/framework/wpf/advanced/how-to-programmatically-print-xps-files.md). You may find it useful to reference these samples during review of content contained in this topic. (Unmanaged code developers should see documentation for the [MXDC_ESCAPE function](https://msdn.microsoft.com/library/windows/desktop/dd162739.aspx). Windows Forms developers must use the [!INCLUDE[TLA2#tla_api](../../../../includes/tla2sharptla-api-md.md)] in the namespace which does not support the full [!INCLUDE[TLA2#tla_xps](../../../../includes/tla2sharptla-xps-md.md)] print path, but does support a hybrid GDI-to-XPS print path. See **Print Path Architecture** below.) + Several techniques for printing [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] based content using [!INCLUDE[TLA2#tla_wpf](../../../../includes/tla2sharptla-wpf-md.md)] are demonstrated in [Programmatically Print XPS Files](../../../../docs/framework/wpf/advanced/how-to-programmatically-print-xps-files.md). You may find it useful to reference these samples during review of content contained in this topic. (Unmanaged code developers should see documentation for the [MXDC_ESCAPE function](/windows/desktop/printdocs/mxdc-escape). Windows Forms developers must use the [!INCLUDE[TLA2#tla_api](../../../../includes/tla2sharptla-api-md.md)] in the namespace which does not support the full [!INCLUDE[TLA2#tla_xps](../../../../includes/tla2sharptla-xps-md.md)] print path, but does support a hybrid GDI-to-XPS print path. See **Print Path Architecture** below.) ## XPS Print Path The [!INCLUDE[TLA#tla_metro](../../../../includes/tlasharptla-metro-md.md)] print path is a new [!INCLUDE[TLA#tla_mswin](../../../../includes/tlasharptla-mswin-md.md)] feature that redefines how printing is handled in Windows applications. Because [!INCLUDE[TLA2#tla_xps](../../../../includes/tla2sharptla-xps-md.md)] can replace a document presentation language (such as RTF), a print spooler format (such as WMF), and a page description language (such as PCL or Postscript); the new print path maintains the [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] format from application publication to the final processing in the print driver or device. - The [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] print path is built upon the [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] printer driver model (XPSDrv), which provides several benefits for developers such as [!INCLUDE[TLA#tla_wys](../../../../includes/tlasharptla-wys-md.md)] printing, improved color support, and significantly improved print performance. (For more on XPSDrv, see the [Windows Driver Development Kit](https://msdn.microsoft.com/library/windows/hardware/ff557573.aspx).) + The [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] print path is built upon the [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] printer driver model (XPSDrv), which provides several benefits for developers such as [!INCLUDE[TLA#tla_wys](../../../../includes/tlasharptla-wys-md.md)] printing, improved color support, and significantly improved print performance. (For more on XPSDrv, see the [Windows Driver Kit documentation](/windows-hardware/drivers/).) The operation of the print spooler for [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] documents is essentially the same as in previous versions of Windows. However, it has been enhanced to support the [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] print path in addition to the existing [!INCLUDE[TLA2#tla_gdi](../../../../includes/tla2sharptla-gdi-md.md)] print path. The new print path natively consumes an [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] spool file. While user-mode printer drivers written for previous versions of [!INCLUDE[TLA#tla_mswin](../../../../includes/tlasharptla-mswin-md.md)] will continue to work, an [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] printer driver (XPSDrv) is required in order to use the [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] print path. @@ -51,7 +51,7 @@ With Microsoft .NET Framework, application developers using Windows Presentation - Print Schema. The public schema is updated regularly and enables rapid extension of device capabilities. (See **PrintTicket and PrintCapabilities** below.) -- Extensible Filter Pipeline. The [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] printer driver (XPSDrv) filter pipeline was designed to enable both direct and scalable printing of [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] documents. (Lookup "XPSDrv" in the [Windows Driver Kit](https://msdn.microsoft.com/library/windows/hardware/ff557573.aspx).) +- Extensible Filter Pipeline. The [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] printer driver (XPSDrv) filter pipeline was designed to enable both direct and scalable printing of [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] documents. For more information, see [XPSDrv Printer Drivers](/windows-hardware/drivers/print/xpsdrv-printer-drivers). ### Print Path Architecture While both [!INCLUDE[TLA2#tla_win32](../../../../includes/tla2sharptla-win32-md.md)] and .NET Framework applications support [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)], [!INCLUDE[TLA2#tla_win32](../../../../includes/tla2sharptla-win32-md.md)] and Windows Forms applications use a [!INCLUDE[TLA2#tla_gdi](../../../../includes/tla2sharptla-gdi-md.md)] to [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] conversion in order to create [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] formatted content for the [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] printer driver (XPSDrv). These applications are not required to use the [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] print path, and can continue to use [!INCLUDE[TLA#tla_emf](../../../../includes/tlasharptla-emf-md.md)] based printing. However, most [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] features and enhancements are only available to applications that target the [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] print path. @@ -100,11 +100,11 @@ With Microsoft .NET Framework, application developers using Windows Presentation ## GDI Print Path - While [!INCLUDE[TLA2#tla_wpf](../../../../includes/tla2sharptla-wpf-md.md)] applications natively support the [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] print path, [!INCLUDE[TLA2#tla_win32](../../../../includes/tla2sharptla-win32-md.md)] and Windows Forms applications can also take advantage of some [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] features. The [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] printer driver (XPSDrv) can convert [!INCLUDE[TLA2#tla_gdi](../../../../includes/tla2sharptla-gdi-md.md)] based output to [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] format. For advanced scenarios, custom conversion of content is supported using the [Microsoft XPS Document Converter (MXDC)](https://msdn.microsoft.com/library/windows/desktop/ff686803.aspx). Similarly, [!INCLUDE[TLA2#tla_wpf](../../../../includes/tla2sharptla-wpf-md.md)] applications can also output to the [!INCLUDE[TLA2#tla_gdi](../../../../includes/tla2sharptla-gdi-md.md)] print path by calling one of the or methods of the class and designating a non-XpsDrv printer as the target print queue. + While [!INCLUDE[TLA2#tla_wpf](../../../../includes/tla2sharptla-wpf-md.md)] applications natively support the [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] print path, [!INCLUDE[TLA2#tla_win32](../../../../includes/tla2sharptla-win32-md.md)] and Windows Forms applications can also take advantage of some [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] features. The [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] printer driver (XPSDrv) can convert [!INCLUDE[TLA2#tla_gdi](../../../../includes/tla2sharptla-gdi-md.md)] based output to [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] format. For advanced scenarios, custom conversion of content is supported using the [Microsoft XPS Document Converter (MXDC)](/windows/desktop/printdocs/microsoft-xps-document-converter--mxdc-). Similarly, [!INCLUDE[TLA2#tla_wpf](../../../../includes/tla2sharptla-wpf-md.md)] applications can also output to the [!INCLUDE[TLA2#tla_gdi](../../../../includes/tla2sharptla-gdi-md.md)] print path by calling one of the or methods of the class and designating a non-XpsDrv printer as the target print queue. For applications that do not require [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] functionality or support, the current [!INCLUDE[TLA2#tla_gdi](../../../../includes/tla2sharptla-gdi-md.md)] print path remains unchanged. -- For additional reference material on the [!INCLUDE[TLA2#tla_gdi](../../../../includes/tla2sharptla-gdi-md.md)] print path and the various [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] conversion options, see [Microsoft XPS Document Converter (MXDC)](https://msdn.microsoft.com/library/windows/desktop/ff686803.aspx) and "XPSDrv" in the [Windows Driver Kit](https://msdn.microsoft.com/library/windows/hardware/ff557573.aspx). +- For additional reference material on the [!INCLUDE[TLA2#tla_gdi](../../../../includes/tla2sharptla-gdi-md.md)] print path and the various [!INCLUDE[TLA2#tla_metro](../../../../includes/tla2sharptla-metro-md.md)] conversion options, see [Microsoft XPS Document Converter (MXDC)](/windows/desktop/printdocs/microsoft-xps-document-converter--mxdc-) and [XPSDrv Printer Drivers](/windows-hardware/drivers/print/xpsdrv-printer-drivers). ## XPSDrv Driver Model @@ -140,4 +140,4 @@ For applications that do not require [!INCLUDE[TLA2#tla_metro](../../../../inclu - [Documents in WPF](../../../../docs/framework/wpf/advanced/documents-in-wpf.md) - [XPS Documents](/windows/desktop/printdocs/documents) - [Document Serialization and Storage](../../../../docs/framework/wpf/advanced/document-serialization-and-storage.md) -- [Microsoft XPS Document Converter (MXDC)](https://msdn.microsoft.com/library/windows/desktop/ff686803.aspx) +- [Microsoft XPS Document Converter (MXDC)](/windows/desktop/printdocs/microsoft-xps-document-converter--mxdc-) diff --git a/docs/framework/wpf/advanced/the-ink-object-model-windows-forms-and-com-versus-wpf.md b/docs/framework/wpf/advanced/the-ink-object-model-windows-forms-and-com-versus-wpf.md index d573d3c2a5375..57ebda056c3ca 100644 --- a/docs/framework/wpf/advanced/the-ink-object-model-windows-forms-and-com-versus-wpf.md +++ b/docs/framework/wpf/advanced/the-ink-object-model-windows-forms-and-com-versus-wpf.md @@ -18,7 +18,7 @@ ms.assetid: 577835be-b145-4226-8570-1d309e9b3901 There are essentially three platforms that support digital ink: the Tablet PC Windows Forms platform, the Tablet PC COM platform, and the Windows Presentation Foundation (WPF) platform. The Windows Forms and COM platforms share a similar object model, but the object model for the [!INCLUDE[TLA2#tla_wpf](../../../../includes/tla2sharptla-wpf-md.md)] platform is substantially different. This topic discusses the differences at a high-level so that developers that have worked with one object model can better understand the other. ## Enabling Ink in an Application - All three platforms ship objects and controls that enable an application to receive input from a tablet pen. The Windows Forms and COM platforms ship with [Microsoft.Ink.InkPicture](https://msdn.microsoft.com/library/aa514604.aspx), [Microsoft.Ink.InkEdit](https://msdn.microsoft.com/library/ms835842.aspx), [Microsoft.Ink.InkOverlay](https://msdn.microsoft.com/library/ms833057.aspx) and [Microsoft.Ink.InkCollector](https://msdn.microsoft.com/library/ms836493.aspx) classes. [Microsoft.Ink.InkPicture](https://msdn.microsoft.com/library/aa514604.aspx) and [Microsoft.Ink.InkEdit](https://msdn.microsoft.com/library/ms835842.aspx) are controls that you can add to an application to collect ink. The [Microsoft.Ink.InkOverlay](https://msdn.microsoft.com/library/ms833057.aspx) and [Microsoft.Ink.InkCollector](https://msdn.microsoft.com/library/ms836493.aspx) can be attached to an existing window to ink-enable windows and custom controls. + All three platforms ship objects and controls that enable an application to receive input from a tablet pen. The Windows Forms and COM platforms ship with [Microsoft.Ink.InkPicture](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583740(v=vs.90)), [Microsoft.Ink.InkEdit](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms552265(v=vs.90)), [Microsoft.Ink.InkOverlay](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms552322(v=vs.90)) and [Microsoft.Ink.InkCollector](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583683(v=vs.90)) classes. [Microsoft.Ink.InkPicture](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583740(v=vs.90)) and [Microsoft.Ink.InkEdit](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms552265(v=vs.90)) are controls that you can add to an application to collect ink. The [Microsoft.Ink.InkOverlay](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms552322(v=vs.90)) and [Microsoft.Ink.InkCollector](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583683(v=vs.90)) can be attached to an existing window to ink-enable windows and custom controls. The WPF platform includes the control. You can add an to your application and begin collecting ink immediately. With the , the user can copy, select, and resize ink. You can add other controls to the , and the user can handwrite over those controls, too. You can create an ink-enabled custom control by adding an to it and collecting its stylus points. @@ -30,11 +30,11 @@ There are essentially three platforms that support digital ink: the Tablet PC Wi |Enable ink on a custom control|See [Creating an Ink Input Control](../../../../docs/framework/wpf/advanced/creating-an-ink-input-control.md).|See [Ink Clipboard Sample](/windows/desktop/tablet/ink-clipboard-sample).| ## Ink Data - On the Windows Forms and COM platforms, [Microsoft.Ink.InkCollector](https://msdn.microsoft.com/library/ms836493.aspx), [Microsoft.Ink.InkOverlay](https://msdn.microsoft.com/library/ms833057.aspx), [Microsoft.Ink.InkEdit](https://msdn.microsoft.com/library/ms835842.aspx), and [Microsoft.Ink.InkPicture](https://msdn.microsoft.com/library/aa514604.aspx) each expose a [Microsoft.Ink.Ink](https://msdn.microsoft.com/library/aa515768.aspx?displayProperty=nameWithType) object. The [Microsoft.Ink.Ink](https://msdn.microsoft.com/library/aa515768.aspx) object contains the data for one or more [Microsoft.Ink.Stroke](https://msdn.microsoft.com/library/ms827842.aspx?displayProperty=nameWithType) objects and exposes common methods and properties to manage and manipulate those strokes. The [Microsoft.Ink.Ink](https://msdn.microsoft.com/library/aa515768.aspx) object manages the lifetime of the strokes it contains; the [Microsoft.Ink.Ink](https://msdn.microsoft.com/library/aa515768.aspx) object creates and deletes the strokes that it owns. Each [Microsoft.Ink.Stroke](https://msdn.microsoft.com/library/ms827842.aspx) has an identifier that is unique within its parent [Microsoft.Ink.Ink](https://msdn.microsoft.com/library/aa515768.aspx) object. + On the Windows Forms and COM platforms, [Microsoft.Ink.InkCollector](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583683(v=vs.90)), [Microsoft.Ink.InkOverlay](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms552322(v=vs.90)), [Microsoft.Ink.InkEdit](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms552265(v=vs.90)), and [Microsoft.Ink.InkPicture](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583740(v=vs.90)) each expose a [Microsoft.Ink.Ink](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583670(v=vs.90)) object. The [Microsoft.Ink.Ink](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583670(v=vs.90)) object contains the data for one or more [Microsoft.Ink.Stroke](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms552692(v=vs.90)) objects and exposes common methods and properties to manage and manipulate those strokes. The [Microsoft.Ink.Ink](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583670(v=vs.90)) object manages the lifetime of the strokes it contains; the [Microsoft.Ink.Ink](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583670(v=vs.90)) object creates and deletes the strokes that it owns. Each [Microsoft.Ink.Stroke](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms552692(v=vs.90)) has an identifier that is unique within its parent [Microsoft.Ink.Ink](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583670(v=vs.90)) object. - On the WPF platform, the class owns and manages its own lifetime. A group of objects can be collected together in a , which provides methods for common ink data management operations such as hit testing, erasing, transforming, and serializing the ink. A can belong to zero, one, or more objects at any give time. Instead of having a [Microsoft.Ink.Ink](https://msdn.microsoft.com/library/aa515768.aspx?displayProperty=nameWithType) object, the and contain a . + On the WPF platform, the class owns and manages its own lifetime. A group of objects can be collected together in a , which provides methods for common ink data management operations such as hit testing, erasing, transforming, and serializing the ink. A can belong to zero, one, or more objects at any give time. Instead of having a [Microsoft.Ink.Ink](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583670(v=vs.90)) object, the and contain a . - The following pair of illustrations compares the ink data object models. On the Windows Forms and COM platforms, the [Microsoft.Ink.Ink](https://msdn.microsoft.com/library/aa515768.aspx?displayProperty=nameWithType) object constrains the lifetime of the [Microsoft.Ink.Stroke](https://msdn.microsoft.com/library/ms827842.aspx?displayProperty=nameWithType) objects, and the stylus packets belong to the individual strokes. Two or more strokes can reference the same [Microsoft.Ink.DrawingAttributes](https://msdn.microsoft.com/library/ms837931.aspx?displayProperty=nameWithType) object, as shown in the following illustration. + The following pair of illustrations compares the ink data object models. On the Windows Forms and COM platforms, the [Microsoft.Ink.Ink](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583670(v=vs.90)) object constrains the lifetime of the [Microsoft.Ink.Stroke](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms552692(v=vs.90)) objects, and the stylus packets belong to the individual strokes. Two or more strokes can reference the same [Microsoft.Ink.DrawingAttributes](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583636(v=vs.90)) object, as shown in the following illustration. ![Diagram of the Ink Object Model for COM/Winforms.](../../../../docs/framework/wpf/advanced/media/ink-inkownsstrokes.png "Ink_InkOwnsStrokes") @@ -46,12 +46,12 @@ There are essentially three platforms that support digital ink: the Tablet PC Wi |Task|Windows Presentation Foundation|Windows Forms and COM| |----------|-------------------------------------|---------------------------| -|Save Ink||[Microsoft.Ink.Ink.Save](https://technet.microsoft.com/library/security/microsoft.ink.ink.save(v=vs.90))| -|Load Ink|Create a with the constructor.|[Microsoft.Ink.Ink.Load](https://msdn.microsoft.com/library/microsoft.ink.ink.load(v=vs.90).aspx)| -|Hit test||[Microsoft.Ink.Ink.HitTest](https://msdn.microsoft.com/library/aa515934.aspx)| -|Copy Ink||[Microsoft.Ink.Ink.ClipboardCopy](https://msdn.microsoft.com/library/microsoft.ink.ink.clipboardcopy(v=vs.100).aspx)| -|Paste Ink||[Microsoft.Ink.Ink.ClipboardPaste](https://msdn.microsoft.com/library/microsoft.ink.ink.clipboardpaste(v=vs.100).aspx)| -|Access custom properties on a collection of strokes| (the properties are stored internally and accessed via , , and )|Use [Microsoft.Ink.Ink.ExtendedProperties](https://msdn.microsoft.com/library/microsoft.ink.ink.extendedproperties(v=vs.100).aspx)| +|Save Ink||[Microsoft.Ink.Ink.Save](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms571335(v=vs.90))| +|Load Ink|Create a with the constructor.|[Microsoft.Ink.Ink.Load](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms569609(v=vs.90))| +|Hit test||[Microsoft.Ink.Ink.HitTest](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms571330(v=vs.90))| +|Copy Ink||[Microsoft.Ink.Ink.ClipboardCopy](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms571316(v=vs.90))| +|Paste Ink||[Microsoft.Ink.Ink.ClipboardPaste](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms571318(v=vs.90))| +|Access custom properties on a collection of strokes| (the properties are stored internally and accessed via , , and )|Use [Microsoft.Ink.Ink.ExtendedProperties](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms582214(v=vs.90))| ### Sharing ink between platforms Although the platforms have different object models for the ink data, sharing the data between the platforms is very easy. The following examples save ink from a Windows Forms application and load the ink into a Windows Presentation Foundation application. @@ -78,7 +78,8 @@ There are essentially three platforms that support digital ink: the Tablet PC Wi [!code-csharp[WinFormWPFInk#LoadWinforms](../../../../samples/snippets/csharp/VS_Snippets_Wpf/WinformWPFInk/CSharp/Program.cs#loadwinforms)] [!code-vb[WinFormWPFInk#LoadWinforms](../../../../samples/snippets/visualbasic/VS_Snippets_Wpf/WinformWPFInk/VisualBasic/Module1.vb#loadwinforms)] ## Events from the Tablet Pen - The [Microsoft.Ink.InkOverlay](https://msdn.microsoft.com/library/ms833057.aspx), [Microsoft.Ink.InkCollector](https://msdn.microsoft.com/library/ms836493.aspx), and [Microsoft.Ink.InkPicture](https://msdn.microsoft.com/library/aa514604.aspx) on the Windows Forms and COM platforms receive events when the user inputs pen data. The [Microsoft.Ink.InkOverlay](https://msdn.microsoft.com/library/ms833057.aspx) or [Microsoft.Ink.InkCollector](https://msdn.microsoft.com/library/ms836493.aspx) is attached to a window or a control, and can subscribe to the events raised by the tablet input data. The thread on which these events occurs depends on whether the events are raised with a pen, a mouse, or programmatically. For more information about threading in relation to these events, see [General Threading Considerations](/windows/desktop/tablet/general-threading-considerations) and [Threads on Which an Event Can Fire](/windows/desktop/tablet/threads-on-which-an-event-can-fire). + + The [Microsoft.Ink.InkOverlay](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms552322(v=vs.90)), [Microsoft.Ink.InkCollector](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583683(v=vs.90)), and [Microsoft.Ink.InkPicture](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583740(v=vs.90)) on the Windows Forms and COM platforms receive events when the user inputs pen data. The [Microsoft.Ink.InkOverlay](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms552322(v=vs.90)) or [Microsoft.Ink.InkCollector](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms583683(v=vs.90)) is attached to a window or a control, and can subscribe to the events raised by the tablet input data. The thread on which these events occurs depends on whether the events are raised with a pen, a mouse, or programmatically. For more information about threading in relation to these events, see [General Threading Considerations](/windows/desktop/tablet/general-threading-considerations) and [Threads on Which an Event Can Fire](/windows/desktop/tablet/threads-on-which-an-event-can-fire). On the Windows Presentation Foundation platform, the class has events for pen input. This means that every control exposes the full set of stylus events. The stylus events have tunneling/bubbling event pairs and always occur on the application thread. For more information, see [Routed Events Overview](../../../../docs/framework/wpf/advanced/routed-events-overview.md). @@ -87,9 +88,9 @@ There are essentially three platforms that support digital ink: the Tablet PC Wi ![Diagram of the Stylus events in WPF vs Winforms.](../../../../docs/framework/wpf/advanced/media/ink-stylusevents.png "Ink_StylusEvents") ## Pen Data - All three platforms provide you with ways to intercept and manipulate the data that comes in from a tablet pen. On the Windows Forms and COM Platforms, this is achieved by creating a [Microsoft.StylusInput.RealTimeStylus](https://msdn.microsoft.com/library/microsoft.stylusinput.realtimestylus(v=vs.100).aspx), attaching a window or control to it, and creating a class that implements the [Microsoft.StylusInput.IStylusSyncPlugin](https://msdn.microsoft.com/library/microsoft.stylusinput.istylussyncplugin(v=vs.100).aspx) or [Microsoft.StylusInput.IStylusAsyncPlugin](https://msdn.microsoft.com/library/microsoft.stylusinput.istylusasyncplugin(v=vs.100).aspx) interface. The custom plug-in is then added to the plug-in collection of the [Microsoft.StylusInput.RealTimeStylus](https://msdn.microsoft.com/library/microsoft.stylusinput.realtimestylus(v=vs.100).aspx). For more information about this object model, see [Architecture of the StylusInput APIs](/windows/desktop/tablet/architecture-of-the-stylusinput-apis). + All three platforms provide you with ways to intercept and manipulate the data that comes in from a tablet pen. On the Windows Forms and COM Platforms, this is achieved by creating a [Microsoft.StylusInput.RealTimeStylus](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms585724(v=vs.90)), attaching a window or control to it, and creating a class that implements the [Microsoft.StylusInput.IStylusSyncPlugin](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms575201(v=vs.90)) or [Microsoft.StylusInput.IStylusAsyncPlugin](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms575194(v=vs.90)) interface. The custom plug-in is then added to the plug-in collection of the [Microsoft.StylusInput.RealTimeStylus](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms585724(v=vs.90)). For more information about this object model, see [Architecture of the StylusInput APIs](/windows/desktop/tablet/architecture-of-the-stylusinput-apis). - On the [!INCLUDE[TLA2#tla_wpf](../../../../includes/tla2sharptla-wpf-md.md)] platform, the class exposes a collection of plug-ins, similar in design to the [Microsoft.StylusInput.RealTimeStylus](https://msdn.microsoft.com/library/microsoft.stylusinput.realtimestylus(v=vs.100).aspx). To intercept pen data, create a class that inherits from and add the object to the collection of the . For more information about this interaction, see [Intercepting Input from the Stylus](../../../../docs/framework/wpf/advanced/intercepting-input-from-the-stylus.md). + On the [!INCLUDE[TLA2#tla_wpf](../../../../includes/tla2sharptla-wpf-md.md)] platform, the class exposes a collection of plug-ins, similar in design to the [Microsoft.StylusInput.RealTimeStylus](https://docs.microsoft.com/previous-versions/dotnet/netframework-3.5/ms585724(v=vs.90)). To intercept pen data, create a class that inherits from and add the object to the collection of the . For more information about this interaction, see [Intercepting Input from the Stylus](../../../../docs/framework/wpf/advanced/intercepting-input-from-the-stylus.md). On all platforms, a thread pool receives the ink data via stylus events and sends it to the application thread. For more information about threading on the COM and Windows Platforms, see [Threading Considerations for the StylusInput APIs](/windows/desktop/tablet/threading-considerations-for-the-stylusinput-apis). For more information about threading on the Windows Presentation Software, see [The Ink Threading Model](../../../../docs/framework/wpf/advanced/the-ink-threading-model.md). diff --git a/docs/framework/wpf/advanced/trees-in-wpf.md b/docs/framework/wpf/advanced/trees-in-wpf.md index 74e0b3df8584d..ceecaf64c7c0b 100644 --- a/docs/framework/wpf/advanced/trees-in-wpf.md +++ b/docs/framework/wpf/advanced/trees-in-wpf.md @@ -23,7 +23,7 @@ In many technologies, elements and components are organized in a tree structure ## The Logical Tree - In [!INCLUDE[TLA2#tla_winclient](../../../../includes/tla2sharptla-winclient-md.md)], you add content to UI elements by setting properties of the objects that back those elements. For example, you add items to a control by manipulating its property. By doing this, you are placing items into the that is the property value. Similarly, to add objects to a , you manipulate its property value. Here, you are adding objects to the . For a code example, see [Add an Element Dynamically](https://msdn.microsoft.com/library/d00f258a-7973-4de7-bc54-a3fc1f638419). + In [!INCLUDE[TLA2#tla_winclient](../../../../includes/tla2sharptla-winclient-md.md)], you add content to UI elements by setting properties of the objects that back those elements. For example, you add items to a control by manipulating its property. By doing this, you are placing items into the that is the property value. Similarly, to add objects to a , you manipulate its property value. Here, you are adding objects to the . For a code example, see [How to: Add an Element Dynamically](https://docs.microsoft.com/previous-versions/dotnet/netframework-4.0/ms752374(v=vs.100)). In [!INCLUDE[TLA#tla_xaml](../../../../includes/tlasharptla-xaml-md.md)], when you place list items in a or controls or other UI elements in a , you also use the and properties, either explicitly or implicitly, as in the following example. diff --git a/docs/framework/wpf/advanced/troubleshooting-hybrid-applications.md b/docs/framework/wpf/advanced/troubleshooting-hybrid-applications.md index 35bea660cab91..d77d84a5347d9 100644 --- a/docs/framework/wpf/advanced/troubleshooting-hybrid-applications.md +++ b/docs/framework/wpf/advanced/troubleshooting-hybrid-applications.md @@ -111,7 +111,7 @@ ms.assetid: f440c23f-fa5d-4d5a-852f-ba61150e6405 ## See also - - -- [Interoperability in the WPF Designer](https://msdn.microsoft.com/library/2cb7c1ca-2a75-463b-8801-fba81e2b7042) +- [Interoperability in the WPF Designer](https://docs.microsoft.com/previous-versions/visualstudio/visual-studio-2010/bb628658(v=vs.100)) - [Windows Forms and WPF Interoperability Input Architecture](../../../../docs/framework/wpf/advanced/windows-forms-and-wpf-interoperability-input-architecture.md) - [How to: Enable Visual Styles in a Hybrid Application](../../../../docs/framework/wpf/advanced/how-to-enable-visual-styles-in-a-hybrid-application.md) - [Layout Considerations for the WindowsFormsHost Element](../../../../docs/framework/wpf/advanced/layout-considerations-for-the-windowsformshost-element.md) diff --git a/docs/framework/wpf/advanced/walkthrough-binding-to-data-in-hybrid-applications.md b/docs/framework/wpf/advanced/walkthrough-binding-to-data-in-hybrid-applications.md index 17285b52ac231..08ae7b60fce54 100644 --- a/docs/framework/wpf/advanced/walkthrough-binding-to-data-in-hybrid-applications.md +++ b/docs/framework/wpf/advanced/walkthrough-binding-to-data-in-hybrid-applications.md @@ -116,7 +116,7 @@ Binding a data source to a control is essential for providing users with access 1. From the **Data** menu, select **Add New Data Source**. -2. In the **Data Source Configuration Wizard**, create a connection to the Northwind database by using a dataset. For more information, see [How to: Connect to Data in a Database](https://msdn.microsoft.com/library/6c56e54e-8834-4297-85aa-cc1a443ba556). +2. In the **Data Source Configuration Wizard**, create a connection to the Northwind database by using a dataset. For more information, see [How to: Connect to Data in a Database](https://docs.microsoft.com/previous-versions/visualstudio/visual-studio-2013/fxk9yw1t(v=vs.120)). 3. When you are prompted by the **Data Source Configuration Wizard**, save the connection string as `NorthwindConnectionString`. diff --git a/docs/framework/wpf/advanced/walkthrough-creating-your-first-touch-application.md b/docs/framework/wpf/advanced/walkthrough-creating-your-first-touch-application.md index 85e2db7fe1148..80286bb6fbcd4 100644 --- a/docs/framework/wpf/advanced/walkthrough-creating-your-first-touch-application.md +++ b/docs/framework/wpf/advanced/walkthrough-creating-your-first-touch-application.md @@ -27,7 +27,7 @@ ms.assetid: d69e602e-9a25-4e24-950b-e89eaa2a906b #### To create the application -1. Create a new WPF Application project in Visual Basic or Visual C# named `BasicManipulation`. For more information, see [How to: Create a New WPF Application Project](https://msdn.microsoft.com/library/1f6aea7a-33e1-4d3f-8555-1daa42e95d82). +1. Create a new WPF Application project in Visual Basic or Visual C# named `BasicManipulation`. For more information, see [Walkthrough: My first WPF desktop application](../getting-started/walkthrough-my-first-wpf-desktop-application.md). 2. Replace the contents of MainWindow.xaml with the following XAML. diff --git a/docs/framework/wpf/advanced/walkthrough-enabling-drag-and-drop-on-a-user-control.md b/docs/framework/wpf/advanced/walkthrough-enabling-drag-and-drop-on-a-user-control.md index 76c437c7accf2..da9ca83683b0a 100644 --- a/docs/framework/wpf/advanced/walkthrough-enabling-drag-and-drop-on-a-user-control.md +++ b/docs/framework/wpf/advanced/walkthrough-enabling-drag-and-drop-on-a-user-control.md @@ -32,7 +32,7 @@ You need Visual Studio to complete this walkthrough. ## Create the Application Project In this section, you will create the application infrastructure, which includes a main page with two panels and a . -1. Create a new WPF Application project in Visual Basic or Visual C# named `DragDropExample`. For more information, see [How to: Create a New WPF Application Project](https://msdn.microsoft.com/library/1f6aea7a-33e1-4d3f-8555-1daa42e95d82). +1. Create a new WPF Application project in Visual Basic or Visual C# named `DragDropExample`. For more information, see [Walkthrough: My first WPF desktop application](../getting-started/walkthrough-my-first-wpf-desktop-application.md). 2. Open MainWindow.xaml. diff --git a/docs/framework/wpf/advanced/walkthrough-hosting-a-3-d-wpf-composite-control-in-windows-forms.md b/docs/framework/wpf/advanced/walkthrough-hosting-a-3-d-wpf-composite-control-in-windows-forms.md index 34c0997142779..d7e4736f9caf7 100644 --- a/docs/framework/wpf/advanced/walkthrough-hosting-a-3-d-wpf-composite-control-in-windows-forms.md +++ b/docs/framework/wpf/advanced/walkthrough-hosting-a-3-d-wpf-composite-control-in-windows-forms.md @@ -45,7 +45,7 @@ You need the following components to complete this walkthrough: ## Create the host project -1. Add a **WPF App (.NET Framework)** project named `WpfUserControlHost` to the solution. For more information, see [How to: Create a New WPF Application Project](https://msdn.microsoft.com/library/1f6aea7a-33e1-4d3f-8555-1daa42e95d82). +1. Add a **WPF App (.NET Framework)** project named `WpfUserControlHost` to the solution. For more information, see [Walkthrough: My first WPF desktop application](../getting-started/walkthrough-my-first-wpf-desktop-application.md). 2. In **Solution Explorer**, add a reference to the WindowsFormsIntegration assembly, which is named WindowsFormsIntegration.dll.