From e9fcf4308356dd3475a09410ba9d4d97b8f73759 Mon Sep 17 00:00:00 2001
From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com>
Date: Wed, 11 Aug 2021 12:04:34 -0700
Subject: [PATCH] Merge pull request #1135 from dotnet/adegeo-links
Correct .NET Framework links that pointed to old .NET 5 URLs
---
.../wpf/advanced/attached-events-overview.md | 2 +-
.../advanced/attached-properties-overview.md | 4 ++--
.../wpf/advanced/base-elements-overview.md | 4 ++--
.../framework/wpf/advanced/base-elements.md | 2 +-
.../wpf/advanced/binding-markup-extension.md | 14 +++++++-------
.../advanced/code-behind-and-xaml-in-wpf.md | 12 ++++++------
.../collection-type-dependency-properties.md | 2 +-
.../componentresourcekey-markup-extension.md | 6 +++---
.../advanced/custom-dependency-properties.md | 2 +-
.../wpf/advanced/datetime-xaml-syntax.md | 2 +-
.../advanced/dependency-properties-overview.md | 8 ++++----
.../dynamicresource-markup-extension.md | 10 +++++-----
.../advanced/element-tree-and-serialization.md | 2 +-
.../framework/wpf/advanced/events-wpf.md | 2 +-
.../advanced/framework-property-metadata.md | 2 +-
.../advanced/globalization-and-localization.md | 2 +-
.../wpf/advanced/globalization-for-wpf.md | 4 ++--
.../how-to-add-an-event-handler-using-code.md | 2 +-
...to-apply-a-focusvisualstyle-to-a-control.md | 2 +-
...to-create-a-rollover-effect-using-events.md | 2 +-
.../how-to-define-and-reference-a-resource.md | 2 +-
.../how-to-implement-icommandsource.md | 2 +-
.../wpf/advanced/how-to-use-systemfonts.md | 2 +-
...or-object-elements-not-in-an-object-tree.md | 2 +-
.../advanced/inline-styles-and-templates.md | 2 +-
.../advanced/markup-extensions-and-wpf-xaml.md | 18 +++++++++---------
.../wpf/advanced/mc-ignorable-attribute.md | 2 +-
.../advanced/mc-processcontent-attribute.md | 2 +-
.../advanced/merged-resource-dictionaries.md | 2 +-
.../wpf/advanced/object-lifetime-events.md | 2 +-
.../optimizing-performance-controls.md | 2 +-
.../optimizing-performance-data-binding.md | 2 +-
.../optimizing-wpf-application-performance.md | 2 +-
.../wpf/advanced/property-change-events.md | 2 +-
.../wpf/advanced/propertypath-xaml-syntax.md | 6 +++---
.../read-only-dependency-properties.md | 2 +-
.../advanced/relativesource-markupextension.md | 12 ++++++------
.../wpf/advanced/resources-and-code.md | 4 ++--
.../framework/wpf/advanced/resources-wpf.md | 2 +-
.../wpf/advanced/routed-events-overview.md | 4 ++--
.../staticresource-markup-extension.md | 10 +++++-----
...r-focus-in-controls-and-focusvisualstyle.md | 4 ++--
.../templatebinding-markup-extension.md | 4 ++--
.../themedictionary-markup-extension.md | 4 ++--
.../framework/wpf/advanced/trees-in-wpf.md | 2 +-
.../wpf/advanced/typeconverters-and-xaml.md | 2 +-
.../types-migrated-from-wpf-to-system.md | 2 +-
.../visual-basic-and-wpf-event-handling.md | 6 +++---
...a-wpf-composite-control-in-windows-forms.md | 2 +-
.../wpf/advanced/weak-event-patterns.md | 2 +-
.../framework/wpf/advanced/wpf-architecture.md | 2 +-
...-globalization-and-localization-overview.md | 4 ++--
.../wpf/advanced/wpf-xaml-namescopes.md | 2 +-
.../xaml-and-custom-classes-for-wpf.md | 6 +++---
.../framework/wpf/advanced/xaml-in-wpf.md | 10 +++++-----
.../xaml-loading-and-dependency-properties.md | 4 ++--
...paces-and-namespace-mapping-for-wpf-xaml.md | 4 ++--
.../wpf/advanced/xaml-syntax-in-detail.md | 18 +++++++++---------
.../deploying-a-wpf-application-wpf.md | 2 +-
.../wpf/app-development/navigation-overview.md | 2 +-
.../wpf/app-development/pack-uris-in-wpf.md | 2 +-
.../controls/button-styles-and-templates.md | 6 +++---
.../controls/calendar-styles-and-templates.md | 6 +++---
.../framework/wpf/controls/calendar.md | 2 +-
.../controls/checkbox-styles-and-templates.md | 6 +++---
.../controls/combobox-styles-and-templates.md | 6 +++---
.../contextmenu-styles-and-templates.md | 6 +++---
.../wpf/controls/control-authoring-overview.md | 4 ++--
.../wpf/controls/control-customization.md | 2 +-
.../controls/control-styles-and-templates.md | 2 +-
...ntrol-that-has-a-customizable-appearance.md | 8 ++++----
.../controls/datagrid-styles-and-templates.md | 6 +++---
.../framework/wpf/controls/datagrid.md | 4 ++--
.../datepicker-styles-and-templates.md | 6 +++---
.../framework/wpf/controls/datepicker.md | 2 +-
.../documentviewer-styles-and-templates.md | 6 +++---
.../controls/expander-styles-and-templates.md | 6 +++---
.../wpf/controls/frame-styles-and-templates.md | 6 +++---
.../controls/groupbox-styles-and-templates.md | 6 +++---
...idelines-for-designing-stylable-controls.md | 4 ++--
...to-add-row-details-to-a-datagrid-control.md | 2 +-
...to-data-that-has-an-indeterminable-depth.md | 2 +-
...ntal-alignment-of-a-column-in-a-listview.md | 2 +-
...-find-controltemplate-generated-elements.md | 2 +-
...-and-filter-data-in-the-datagrid-control.md | 6 +++---
...eclick-event-for-each-item-in-a-listview.md | 4 ++--
...ent-validation-with-the-datagrid-control.md | 4 ++--
...et-the-text-content-of-a-textbox-control.md | 2 +-
...in-a-listview-that-implements-a-gridview.md | 2 +-
.../how-to-style-controls-on-a-toolbar.md | 2 +-
.../framework/wpf/controls/index.md | 8 ++++----
.../wpf/controls/label-styles-and-templates.md | 6 +++---
.../controls/listbox-styles-and-templates.md | 6 +++---
.../controls/listview-styles-and-templates.md | 6 +++---
.../framework/wpf/controls/listview.md | 2 +-
.../wpf/controls/menu-styles-and-templates.md | 6 +++---
.../navigationwindow-styles-and-templates.md | 6 +++---
.../passwordbox-styles-and-templates.md | 6 +++---
.../progressbar-styles-and-templates.md | 6 +++---
.../radiobutton-styles-and-templates.md | 6 +++---
.../repeatbutton-styles-and-templates.md | 6 +++---
.../controls/scrollbar-styles-and-templates.md | 6 +++---
.../wpf/controls/scrollviewer-overview.md | 2 +-
.../scrollviewer-styles-and-templates.md | 6 +++---
.../controls/slider-styles-and-templates.md | 6 +++---
.../controls/statusbar-styles-and-templates.md | 6 +++---
.../wpf/controls/styles-and-templates.md | 2 +-
.../tabcontrol-styles-and-templates.md | 6 +++---
.../controls/textbox-styles-and-templates.md | 6 +++---
.../wpf/controls/thumb-styles-and-templates.md | 6 +++---
.../togglebutton-styles-and-templates.md | 6 +++---
.../controls/toolbar-styles-and-templates.md | 6 +++---
.../controls/tooltip-styles-and-templates.md | 6 +++---
.../controls/treeview-styles-and-templates.md | 6 +++---
.../framework/wpf/controls/treeview.md | 2 +-
...tton-by-using-microsoft-expression-blend.md | 2 +-
...alkthrough-create-a-button-by-using-xaml.md | 4 ++--
...throughs-create-a-custom-animated-button.md | 2 +-
.../controls/window-styles-and-templates.md | 6 +++---
.../wpf/data/binding-declarations-overview.md | 4 ++--
.../wpf/data/binding-sources-overview.md | 6 +++---
.../wpf/data/data-binding-how-to-topics.md | 2 +-
.../wpf/data/data-templating-overview.md | 8 ++++----
...w-to-bind-the-properties-of-two-controls.md | 2 +-
...d-display-information-based-on-selection.md | 2 +-
.../how-to-bind-to-an-ado-net-data-source.md | 2 +-
.../wpf/data/how-to-bind-to-an-enumeration.md | 2 +-
...w-to-bind-to-the-results-of-a-linq-query.md | 2 +-
...ing-an-xmldataprovider-and-xpath-queries.md | 4 ++--
.../wpf/data/how-to-clear-bindings.md | 2 +-
.../wpf/data/how-to-convert-bound-data.md | 2 +-
.../data/how-to-create-a-binding-in-code.md | 2 +-
.../wpf/data/how-to-create-a-simple-binding.md | 2 +-
...eate-and-bind-to-an-observablecollection.md | 4 ++--
.../wpf/data/how-to-filter-data-in-a-view.md | 2 +-
...-to-find-datatemplate-generated-elements.md | 4 ++--
...et-the-default-view-of-a-data-collection.md | 2 +-
.../how-to-implement-a-compositecollection.md | 2 +-
.../how-to-implement-binding-validation.md | 4 ++--
.../data/how-to-implement-prioritybinding.md | 2 +-
...o-implement-property-change-notification.md | 2 +-
...-make-data-available-for-binding-in-xaml.md | 2 +-
...ugh-the-objects-in-a-data-collectionview.md | 2 +-
...e-a-value-based-on-a-list-of-bound-items.md | 2 +-
...o-set-up-notification-of-binding-updates.md | 2 +-
...sort-and-group-data-using-a-view-in-xaml.md | 2 +-
.../wpf/data/how-to-sort-data-in-a-view.md | 4 ++--
.../data/how-to-specify-the-binding-source.md | 2 +-
...-to-specify-the-direction-of-the-binding.md | 2 +-
...er-detail-pattern-with-hierarchical-data.md | 2 +-
...ow-to-use-xml-namespaces-in-data-binding.md | 2 +-
.../framework/wpf/data/index.md | 4 ++--
.../framework/wpf/getting-started/index.md | 2 +-
...through-my-first-wpf-desktop-application.md | 8 ++++----
.../graphics-multimedia/animation-overview.md | 2 +-
...animate-a-property-by-using-a-storyboard.md | 2 +-
.../how-to-animate-in-a-style.md | 2 +-
.../storyboards-overview.md | 2 +-
.../timing-behaviors-overview.md | 2 +-
.../framework/wpf/introduction-to-wpf.md | 6 +++---
.../framework/wpf/security-wpf.md | 2 +-
.../wpf/wpf-partial-trust-security.md | 2 +-
162 files changed, 323 insertions(+), 323 deletions(-)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/attached-events-overview.md b/dotnet-desktop-guide/framework/wpf/advanced/attached-events-overview.md
index cc6ee2d..e28a4f2 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/attached-events-overview.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/attached-events-overview.md
@@ -20,7 +20,7 @@ Extensible Application Markup Language (XAML) defines a language component and t
## Prerequisites
- This topic assumes that you have read [Routed Events Overview](routed-events-overview.md) and [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml).
+ This topic assumes that you have read [Routed Events Overview](routed-events-overview.md) and [XAML in WPF](xaml-in-wpf.md).
## Attached Event Syntax
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/attached-properties-overview.md b/dotnet-desktop-guide/framework/wpf/advanced/attached-properties-overview.md
index c47d122..60455f6 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/attached-properties-overview.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/attached-properties-overview.md
@@ -32,7 +32,7 @@ The following is an example of how you can set that owns and registers the attached property, rather than referring to any instance specified by name.
-Also, because an attached property in XAML is an attribute that you set in markup, only the set operation has any relevance. You cannot directly get a property in XAML, although there are some indirect mechanisms for comparing values, such as triggers in styles (for details, see [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)).
+Also, because an attached property in XAML is an attribute that you set in markup, only the set operation has any relevance. You cannot directly get a property in XAML, although there are some indirect mechanisms for comparing values, such as triggers in styles (for details, see [Styling and Templating](../controls/styles-templates-overview.md)).
### Attached Property Implementation in WPF
@@ -142,5 +142,5 @@ WPF defines several .NET attributes that are intended to provide information abo
-
- [Dependency Properties Overview](dependency-properties-overview.md)
- [Custom Dependency Properties](custom-dependency-properties.md)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [XAML in WPF](xaml-in-wpf.md)
- [Register an Attached Property](how-to-register-an-attached-property.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/base-elements-overview.md b/dotnet-desktop-guide/framework/wpf/advanced/base-elements-overview.md
index aa94ec5..607d808 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/base-elements-overview.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/base-elements-overview.md
@@ -42,7 +42,7 @@ A high percentage of classes in [!INCLUDE[TLA#tla_winclient](../../../includes/t
- Support for styling and storyboards. For more information, see and [Storyboards Overview](../graphics-multimedia/storyboards-overview.md).
-- Support for data binding. For more information, see [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview).
+- Support for data binding. For more information, see [Data Binding Overview](../data/data-binding-overview.md).
- Support for dynamic resource references. For more information, see [XAML Resources](/dotnet/desktop-wpf/fundamentals/xaml-resources-define).
@@ -62,7 +62,7 @@ A high percentage of classes in [!INCLUDE[TLA#tla_winclient](../../../includes/t
- Support for styling and storyboards. For more information, see and [Animation Overview](../graphics-multimedia/animation-overview.md).
-- Support for data binding. For more information, see [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview).
+- Support for data binding. For more information, see [Data Binding Overview](../data/data-binding-overview.md).
- Support for dynamic resource references. For more information, see [XAML Resources](/dotnet/desktop-wpf/fundamentals/xaml-resources-define).
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/base-elements.md b/dotnet-desktop-guide/framework/wpf/advanced/base-elements.md
index 438aef7..2b07bfe 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/base-elements.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/base-elements.md
@@ -33,5 +33,5 @@ Four key classes--, property. See also [PropertyPath XAML Syntax](propertypath-xaml-syntax.md).|
## Unqualified {Binding}
- The `{Binding}` usage shown in "Binding Expression Usage" creates a object with default values, which includes an initial of `null`. This is still useful in many scenarios, because the created might be relying on key data binding properties such as and being set in the run-time data context. For more information on the concept of data context, see [Data Binding](/dotnet/desktop-wpf/data/data-binding-overview).
+ The `{Binding}` usage shown in "Binding Expression Usage" creates a object with default values, which includes an initial of `null`. This is still useful in many scenarios, because the created might be relying on key data binding properties such as and being set in the run-time data context. For more information on the concept of data context, see [Data Binding](../data/data-binding-overview.md).
## Implicit Path
The `Binding` markup extension uses as a conceptual "default property", where `Path=` does not need to appear in the expression. If you specify a `Binding` expression with an implicit path, the implicit path must appear first in the expression, prior to any other `bindProp`=`value` pairs where the property is specified by name. For example: `{Binding PathString}`, where `PathString` is a string that is evaluated to be the value of in the created by the markup extension usage. You can append an implicit path with other named properties after the comma separator, for example, `{Binding LastName, Mode=TwoWay}`.
@@ -58,7 +58,7 @@ Defers a property value to be a data-bound value, creating an intermediate expre
- : can be set as a `bindProp`=`value` string in the expression, but this is dependent on the type of the parameter being passed. If passing a reference type for the value, this usage requires an object reference such as a nested [StaticResource Markup Extension](staticresource-markup-extension.md).
-- : mutually exclusive versus and ; each of these binding properties represents a particular binding methodology. See [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview).
+- : mutually exclusive versus and ; each of these binding properties represents a particular binding methodology. See [Data Binding Overview](../data/data-binding-overview.md).
- : can be set as a `bindProp`=`value` string in the expression, but this is dependent on the type of the value being passed. If passing a reference type, requires an object reference such as a nested [StaticResource Markup Extension](staticresource-markup-extension.md).
@@ -74,9 +74,9 @@ Defers a property value to be a data-bound value, creating an intermediate expre
- : a string that describes a path into a data object or a general object model. The format provides several different conventions for traversing an object model that cannot be adequately described in this topic. See [PropertyPath XAML Syntax](propertypath-xaml-syntax.md).
-- : mutually exclusive versus with and ; each of these binding properties represents a particular binding methodology. See [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview). Requires a nested [RelativeSource MarkupExtension](relativesource-markupextension.md) usage to specify the value.
+- : mutually exclusive versus with and ; each of these binding properties represents a particular binding methodology. See [Data Binding Overview](../data/data-binding-overview.md). Requires a nested [RelativeSource MarkupExtension](relativesource-markupextension.md) usage to specify the value.
-- : mutually exclusive versus and ; each of these binding properties represents a particular binding methodology. See [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview). Requires a nested extension usage, typically a [StaticResource Markup Extension](staticresource-markup-extension.md) that refers to an object data source from a keyed resource dictionary.
+- : mutually exclusive versus and ; each of these binding properties represents a particular binding methodology. See [Data Binding Overview](../data/data-binding-overview.md). Requires a nested extension usage, typically a [StaticResource Markup Extension](staticresource-markup-extension.md) that refers to an object data source from a keyed resource dictionary.
- : a string that describes a string format convention for the bound data. This is a relatively advanced binding concept; see reference page for .
@@ -103,7 +103,7 @@ Defers a property value to be a data-bound value, creating an intermediate expre
> [!IMPORTANT]
> In terms of dependency property precedence, a `Binding` expression is equivalent to a locally set value. If you set a local value for a property that previously had a `Binding` expression, the `Binding` is completely removed. For details, see [Dependency Property Value Precedence](dependency-property-value-precedence.md).
- Describing data binding at a basic level is not covered in this topic. See [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview).
+ Describing data binding at a basic level is not covered in this topic. See [Data Binding Overview](../data/data-binding-overview.md).
> [!NOTE]
> and do not support a [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] extension syntax. You would instead use property elements. See reference topics for and .
@@ -119,6 +119,6 @@ Defers a property value to be a data-bound value, creating an intermediate expre
## See also
-
-- [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [Data Binding Overview](../data/data-binding-overview.md)
+- [XAML in WPF](xaml-in-wpf.md)
- [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/code-behind-and-xaml-in-wpf.md b/dotnet-desktop-guide/framework/wpf/advanced/code-behind-and-xaml-in-wpf.md
index 89d3a94..afd0c73 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/code-behind-and-xaml-in-wpf.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/code-behind-and-xaml-in-wpf.md
@@ -23,11 +23,11 @@ ms.assetid: 9df6d3c9-aed3-471c-af36-6859b19d999f
## Prerequisites
- This topic assumes that you have read the [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml) and have some basic knowledge of the CLR and object-oriented programming.
+ This topic assumes that you have read the [XAML in WPF](xaml-in-wpf.md) and have some basic knowledge of the CLR and object-oriented programming.
## Code-Behind and the XAML Language
- The XAML language includes language-level features that make it possible to associate code files with markup files, from the markup file side. Specifically, the XAML language defines the language features [x:Class Directive](/dotnet/desktop-wpf/xaml-services/xclass-directive), [x:Subclass Directive](/dotnet/desktop-wpf/xaml-services/xsubclass-directive), and [x:ClassModifier Directive](/dotnet/desktop-wpf/xaml-services/xclassmodifier-directive). Exactly how the code should be produced, and how to integrate markup and code, is not part of what the XAML language specifies. It is left up to frameworks such as WPF to determine how to integrate the code, how to use XAML in the application and programming models, and the build actions or other support that all this requires.
+ The XAML language includes language-level features that make it possible to associate code files with markup files, from the markup file side. Specifically, the XAML language defines the language features [x:Class Directive](/dotnet/desktop/xaml-services/xclass-directive), [x:Subclass Directive](/dotnet/desktop/xaml-services/xsubclass-directive), and [x:ClassModifier Directive](/dotnet/desktop/xaml-services/xclassmodifier-directive). Exactly how the code should be produced, and how to integrate markup and code, is not part of what the XAML language specifies. It is left up to frameworks such as WPF to determine how to integrate the code, how to use XAML in the application and programming models, and the build actions or other support that all this requires.
## Code-behind, Event Handler, and Partial Class Requirements in WPF
@@ -44,17 +44,17 @@ ms.assetid: 9df6d3c9-aed3-471c-af36-6859b19d999f
## x:Code
- [x:Code](/dotnet/desktop-wpf/xaml-services/xcode-intrinsic-xaml-type) is a directive element defined in [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)]. An `x:Code` directive element can contain inline programming code. The code that is defined inline can interact with the [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] on the same page. The following example illustrates inline C# code. Notice that the code is inside the `x:Code` element and that the code must be surrounded by `` to escape the contents for XML, so that a [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] processor (interpreting either the [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] schema or the [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] schema) will not try to interpret the contents literally as XML.
+ [x:Code](/dotnet/desktop/xaml-services/xcode-intrinsic-xaml-type) is a directive element defined in [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)]. An `x:Code` directive element can contain inline programming code. The code that is defined inline can interact with the [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] on the same page. The following example illustrates inline C# code. Notice that the code is inside the `x:Code` element and that the code must be surrounded by `` to escape the contents for XML, so that a [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] processor (interpreting either the [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] schema or the [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] schema) will not try to interpret the contents literally as XML.
[!code-xaml[XAMLOvwSupport#ButtonWithInlineCode](~/samples/snippets/csharp/VS_Snippets_Wpf/XAMLOvwSupport/CSharp/page4.xaml#buttonwithinlinecode)]
## Inline Code Limitations
- You should consider avoiding or limiting the use of inline code. In terms of architecture and coding philosophy, maintaining a separation between markup and code-behind keeps the designer and developer roles much more distinct. On a more technical level, the code that you write for inline code can be awkward to write, because you are always writing into the [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] generated partial class, and can only use the default XML namespace mappings. Because you cannot add `using` statements, you must fully qualify many of the API calls that you make. The default [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] mappings include most but not all CLR namespaces that are present in the [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] assemblies; you will have to fully qualify calls to types and members contained within the other CLR namespaces. You also cannot define anything beyond the partial class in the inline code, and all user code entities you reference must exist as a member or variable within the generated partial class. Other language specific programming features, such as macros or `#ifdef` against global variables or build variables, are also not available. For more information, see [x:Code Intrinsic XAML Type](/dotnet/desktop-wpf/xaml-services/xcode-intrinsic-xaml-type).
+ You should consider avoiding or limiting the use of inline code. In terms of architecture and coding philosophy, maintaining a separation between markup and code-behind keeps the designer and developer roles much more distinct. On a more technical level, the code that you write for inline code can be awkward to write, because you are always writing into the [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] generated partial class, and can only use the default XML namespace mappings. Because you cannot add `using` statements, you must fully qualify many of the API calls that you make. The default [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] mappings include most but not all CLR namespaces that are present in the [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] assemblies; you will have to fully qualify calls to types and members contained within the other CLR namespaces. You also cannot define anything beyond the partial class in the inline code, and all user code entities you reference must exist as a member or variable within the generated partial class. Other language specific programming features, such as macros or `#ifdef` against global variables or build variables, are also not available. For more information, see [x:Code Intrinsic XAML Type](/dotnet/desktop/xaml-services/xcode-intrinsic-xaml-type).
## See also
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
-- [x:Code Intrinsic XAML Type](/dotnet/desktop-wpf/xaml-services/xcode-intrinsic-xaml-type)
+- [XAML in WPF](xaml-in-wpf.md)
+- [x:Code Intrinsic XAML Type](/dotnet/desktop/xaml-services/xcode-intrinsic-xaml-type)
- [Building a WPF Application](../app-development/building-a-wpf-application-wpf.md)
- [XAML Syntax In Detail](xaml-syntax-in-detail.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/collection-type-dependency-properties.md b/dotnet-desktop-guide/framework/wpf/advanced/collection-type-dependency-properties.md
index 8829e5b..0f46971 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/collection-type-dependency-properties.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/collection-type-dependency-properties.md
@@ -55,7 +55,7 @@ This topic provides guidance and suggested patterns for how to implement a depen
-
- [XAML and Custom Classes for WPF](xaml-and-custom-classes-for-wpf.md)
-- [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview)
+- [Data Binding Overview](../data/data-binding-overview.md)
- [Dependency Properties Overview](dependency-properties-overview.md)
- [Custom Dependency Properties](custom-dependency-properties.md)
- [Dependency Property Metadata](dependency-property-metadata.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/componentresourcekey-markup-extension.md b/dotnet-desktop-guide/framework/wpf/advanced/componentresourcekey-markup-extension.md
index 2774d63..6c72285 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/componentresourcekey-markup-extension.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/componentresourcekey-markup-extension.md
@@ -41,7 +41,7 @@ Defines and references keys for resources that are loaded from external assembli
|||
|-|-|
|`targetTypeName`|The name of the public common language runtime (CLR) type that is defined in the resource assembly.|
-|`targetID`|The key for the resource. When resources are looked up, `targetID` will be analogous to the [x:Key Directive](/dotnet/desktop-wpf/xaml-services/xkey-directive) of the resource.|
+|`targetID`|The key for the resource. When resources are looked up, `targetID` will be analogous to the [x:Key Directive](/dotnet/desktop/xaml-services/xkey-directive) of the resource.|
## Remarks
As seen in the usages above, a {`ComponentResourceKey`} markup extension usage is found in two places:
@@ -60,7 +60,7 @@ Defines and references keys for resources that are loaded from external assembli
The compact syntax shown relies on the constructor signature and positional parameter usage of a markup extension. The order in which the `targetTypeName` and `targetID` are given is important. The verbose syntax relies on the parameterless constructor, and then sets the and in a way that is analogous to a true attribute syntax on an object element. In the verbose syntax, the order in which the properties are set is not important. The relationship and mechanisms of these two alternatives (compact and verbose) is described in more detail in the topic [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md).
- Technically, the value for `targetID` can be any object, it does not have to be a string. However, the most common usage in WPF is to align the `targetID` value with forms that are strings, and where such strings are valid in the [XamlName Grammar](/dotnet/desktop-wpf/xaml-services/xamlname-grammar).
+ Technically, the value for `targetID` can be any object, it does not have to be a string. However, the most common usage in WPF is to align the `targetID` value with forms that are strings, and where such strings are valid in the [XamlName Grammar](/dotnet/desktop/xaml-services/xamlname-grammar).
`ComponentResourceKey` can be used in object element syntax. In this case, specifying the value of both the and properties is required to properly initialize the extension.
@@ -73,5 +73,5 @@ Defines and references keys for resources that are loaded from external assembli
-
-
- [Control Authoring Overview](../controls/control-authoring-overview.md)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [XAML in WPF](xaml-in-wpf.md)
- [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/custom-dependency-properties.md b/dotnet-desktop-guide/framework/wpf/advanced/custom-dependency-properties.md
index db7c810..486a820 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/custom-dependency-properties.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/custom-dependency-properties.md
@@ -47,7 +47,7 @@ As mentioned in the [Dependency Properties Overview](dependency-properties-overv
When you implement a property on a class, so long as your class derives from , you have the option to back your property with a identifier and thus to make it a dependency property. Having your property be a dependency property is not always necessary or appropriate, and will depend on your scenario needs. Sometimes, the typical technique of backing your property with a private field is adequate. However, you should implement your property as a dependency property whenever you want your property to support one or more of the following [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] capabilities:
-- You want your property to be settable in a style. For more information, see [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview).
+- You want your property to be settable in a style. For more information, see [Styling and Templating](../controls/styles-templates-overview.md).
- You want your property to support data binding. For more information about data binding dependency properties, see [Bind the Properties of Two Controls](../data/how-to-bind-the-properties-of-two-controls.md).
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/datetime-xaml-syntax.md b/dotnet-desktop-guide/framework/wpf/advanced/datetime-xaml-syntax.md
index 29b40c1..8e2938e 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/datetime-xaml-syntax.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/datetime-xaml-syntax.md
@@ -69,4 +69,4 @@ Some controls, such as and [!NOTE]
> Bindings are treated as a local value, which means that if you set another local value, you will eliminate the binding. For details, see [Dependency Property Value Precedence](dependency-property-value-precedence.md).
-Dependency properties, or the class, do not natively support for purposes of producing notifications of changes in source property value for data binding operations. For more information on how to create properties for use in data binding that can report changes to a data binding target, see [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview).
+Dependency properties, or the class, do not natively support for purposes of producing notifications of changes in source property value for data binding operations. For more information on how to create properties for use in data binding that can report changes to a data binding target, see [Data Binding Overview](../data/data-binding-overview.md).
### Styles
Styles and templates are two of the chief motivating scenarios for using dependency properties. Styles are particularly useful for setting properties that define application [!INCLUDE[TLA#tla_ui](../../../includes/tlasharptla-ui-md.md)]. Styles are typically defined as resources in XAML. Styles interact with the property system because they typically contain "setters" for particular properties, as well as "triggers" that change a property value based on the real-time value for another property.
@@ -129,7 +129,7 @@ The following example creates a simple style (which would be defined inside a if the resource was created in code.|
+|`key`|The key for the requested resource. This key was initially assigned by the [x:Key Directive](/dotnet/desktop/xaml-services/xkey-directive) if a resource was created in markup, or was provided as the `key` parameter when calling if the resource was created in code.|
## Remarks
A `DynamicResource` will create a temporary expression during the initial compilation and thus defer lookup for resources until the requested resource value is actually required in order to construct an object. This may potentially be after the [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] page is loaded. The resource value will be found based on key search against all active resource dictionaries starting from the current page scope, and is substituted for the placeholder expression from compilation.
@@ -42,9 +42,9 @@ Provides a value for any [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla
Certain resource access scenarios are particularly appropriate for `DynamicResource` as opposed to a [StaticResource Markup Extension](staticresource-markup-extension.md). See [XAML Resources](/dotnet/desktop-wpf/fundamentals/xaml-resources-define) for a discussion about the relative merits and performance implications of `DynamicResource` and `StaticResource`.
- The specified should correspond to an existing resource determined by [x:Key Directive](/dotnet/desktop-wpf/xaml-services/xkey-directive) at some level in your page, application, the available control themes and external resources, or system resources, and the resource lookup will happen in that order. For more information about resource lookup for static and dynamic resources, see [XAML Resources](/dotnet/desktop-wpf/fundamentals/xaml-resources-define).
+ The specified should correspond to an existing resource determined by [x:Key Directive](/dotnet/desktop/xaml-services/xkey-directive) at some level in your page, application, the available control themes and external resources, or system resources, and the resource lookup will happen in that order. For more information about resource lookup for static and dynamic resources, see [XAML Resources](/dotnet/desktop-wpf/fundamentals/xaml-resources-define).
- A resource key may be any string defined in the [XamlName Grammar](/dotnet/desktop-wpf/xaml-services/xamlname-grammar). A resource key may also be other object types, such as a . A key is fundamental to how controls can be styled by themes. For more information, see [Control Authoring Overview](../controls/control-authoring-overview.md).
+ A resource key may be any string defined in the [XamlName Grammar](/dotnet/desktop/xaml-services/xamlname-grammar). A resource key may also be other object types, such as a . A key is fundamental to how controls can be styled by themes. For more information, see [Control Authoring Overview](../controls/control-authoring-overview.md).
APIs for lookup of resource values, such as , follow the same resource lookup logic as used by `DynamicResource`.
@@ -70,8 +70,8 @@ Provides a value for any [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla
- [XAML Resources](/dotnet/desktop-wpf/fundamentals/xaml-resources-define)
- [Resources and Code](resources-and-code.md)
-- [x:Key Directive](/dotnet/desktop-wpf/xaml-services/xkey-directive)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [x:Key Directive](/dotnet/desktop/xaml-services/xkey-directive)
+- [XAML in WPF](xaml-in-wpf.md)
- [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md)
- [StaticResource Markup Extension](staticresource-markup-extension.md)
- [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/element-tree-and-serialization.md b/dotnet-desktop-guide/framework/wpf/advanced/element-tree-and-serialization.md
index 5090f04..ab68add 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/element-tree-and-serialization.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/element-tree-and-serialization.md
@@ -33,5 +33,5 @@ WPF programming elements often exist in some form of tree relationship to each o
[Events](events-wpf.md)
[Input](input-wpf.md)
[Resources](resources-wpf.md)
- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
+ [Styling and Templating](../controls/styles-templates-overview.md)
[Threading Model](threading-model.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/events-wpf.md b/dotnet-desktop-guide/framework/wpf/advanced/events-wpf.md
index fbbec15..2356b11 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/events-wpf.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/events-wpf.md
@@ -38,6 +38,6 @@ ms.assetid: d3b93c6f-aa6b-486d-a010-d097ea8a516b
[Properties](properties-wpf.md)
[Input](input-wpf.md)
[Resources](resources-wpf.md)
- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
+ [Styling and Templating](../controls/styles-templates-overview.md)
[WPF Content Model](../controls/wpf-content-model.md)
[Threading Model](threading-model.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/framework-property-metadata.md b/dotnet-desktop-guide/framework/wpf/advanced/framework-property-metadata.md
index ed67486..7d2478e 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/framework-property-metadata.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/framework-property-metadata.md
@@ -26,7 +26,7 @@ Framework property metadata options are reported for the properties of object el
> [!NOTE]
> The term "inherits" in the context of property values means something specific for dependency properties; it means that child elements can inherit the actual dependency property value from parent elements because of a WPF framework-level capability of the [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] property system. It has nothing to do directly with managed code type and members inheritance through derived types. For details, see [Property Value Inheritance](property-value-inheritance.md).
-- Reporting data binding characteristics (, ). By default, dependency properties in the framework support data binding, with a one-way binding behavior. You might disable data binding if there were no scenario for it whatsoever (because they are intended to be flexible and extensible, there aren't many examples of such properties in the default [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] APIs). You might set binding to have a two-way default for properties that tie together a control's behaviors amongst its component pieces ( is an example) or where two-way binding is the common and expected scenario for users ( is an example). Changing the data binding–related metadata only influences the default; on a per-binding basis that default can always be changed. For details on the binding modes and binding in general, see [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview).
+- Reporting data binding characteristics (, ). By default, dependency properties in the framework support data binding, with a one-way binding behavior. You might disable data binding if there were no scenario for it whatsoever (because they are intended to be flexible and extensible, there aren't many examples of such properties in the default [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] APIs). You might set binding to have a two-way default for properties that tie together a control's behaviors amongst its component pieces ( is an example) or where two-way binding is the common and expected scenario for users ( is an example). Changing the data binding–related metadata only influences the default; on a per-binding basis that default can always be changed. For details on the binding modes and binding in general, see [Data Binding Overview](../data/data-binding-overview.md).
- Reporting whether properties should be journaled by applications or services that support journaling (). For general elements, journaling is not enabled by default, but it is selectively enabled for certain user input controls. This property is intended to be read by journaling services including the [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] implementation of journaling, and is typically set on user controls such as user selections within lists that should be persisted across navigation steps. For information about the journal, see [Navigation Overview](../app-development/navigation-overview.md).
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/globalization-and-localization.md b/dotnet-desktop-guide/framework/wpf/advanced/globalization-and-localization.md
index 265cf5d..cb180cb 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/globalization-and-localization.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/globalization-and-localization.md
@@ -30,6 +30,6 @@ ms.assetid: e96f9764-4e3f-4d1c-bf20-3fb890118aae
- [xml:lang Handling in XAML](/dotnet/desktop-wpf/xaml-services/xml-language-handling)
+ [xml:lang Handling in XAML](/dotnet/desktop/xaml-services/xml-language-handling)
## Related Sections
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/globalization-for-wpf.md b/dotnet-desktop-guide/framework/wpf/advanced/globalization-for-wpf.md
index f0362d2..1927cd7 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/globalization-for-wpf.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/globalization-for-wpf.md
@@ -39,7 +39,7 @@ The following example shows a hexadecimal character reference. Notice that it ha
### Language Attribute
- [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] uses [xml:lang](/dotnet/desktop-wpf/xaml-services/xml-language-handling) to represent the language attribute of an element. To take advantage of the class, the language attribute value needs to be one of the culture names predefined by . [xml:lang](/dotnet/desktop-wpf/xaml-services/xml-language-handling) is inheritable in the element tree (by XML rules, not necessarily because of dependency property inheritance) and its default value is an empty string if it is not assigned explicitly.
+ [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] uses [xml:lang](/dotnet/desktop/xaml-services/xml-language-handling) to represent the language attribute of an element. To take advantage of the class, the language attribute value needs to be one of the culture names predefined by . [xml:lang](/dotnet/desktop/xaml-services/xml-language-handling) is inheritable in the element tree (by XML rules, not necessarily because of dependency property inheritance) and its default value is an empty string if it is not assigned explicitly.
The language attribute is very useful for specifying dialects. For example, French has different spelling, vocabulary, and pronunciation in France, Quebec, Belgium, and Switzerland. Also Chinese, Japanese, and Korean share code points in Unicode, but the ideographic shapes are different and they use totally different fonts.
@@ -143,7 +143,7 @@ The following example shows a hexadecimal character reference. Notice that it ha
### Localizable User Interface
[!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] applications use [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] to define their [!INCLUDE[TLA2#tla_ui](../../../includes/tla2sharptla-ui-md.md)]. [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] allows developers to specify a hierarchy of objects with a set of properties and logic. The primary use of [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] is to develop [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] applications but it can be used to specify a hierarchy of any common language runtime (CLR) objects. Most developers use [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] to specify their application's [!INCLUDE[TLA2#tla_ui](../../../includes/tla2sharptla-ui-md.md)] and use a programming language such as C# to react to user interaction.
- From a resource point of view, a [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] file designed to describe a language-dependent [!INCLUDE[TLA2#tla_ui](../../../includes/tla2sharptla-ui-md.md)] is a resource element and therefore its final distribution format must be localizable to support international languages. Because [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] cannot handle events many [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] applications contain blocks of code to do this. For more information, see [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml). Code is stripped out and compiled into different binaries when a [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] file is tokenized into the BAML form of XAML. The BAML form of XAML files, images, and other types of managed resource objects are embedded in the satellite resource assembly, which can be localized into other languages, or the main assembly when localization is not required.
+ From a resource point of view, a [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] file designed to describe a language-dependent [!INCLUDE[TLA2#tla_ui](../../../includes/tla2sharptla-ui-md.md)] is a resource element and therefore its final distribution format must be localizable to support international languages. Because [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] cannot handle events many [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] applications contain blocks of code to do this. For more information, see [XAML in WPF](xaml-in-wpf.md). Code is stripped out and compiled into different binaries when a [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] file is tokenized into the BAML form of XAML. The BAML form of XAML files, images, and other types of managed resource objects are embedded in the satellite resource assembly, which can be localized into other languages, or the main assembly when localization is not required.
> [!NOTE]
> [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] applications support all the FrameworkCLR resources including string tables, images, and so forth.
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/how-to-add-an-event-handler-using-code.md b/dotnet-desktop-guide/framework/wpf/advanced/how-to-add-an-event-handler-using-code.md
index 3efe975..6a5ee85 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/how-to-add-an-event-handler-using-code.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/how-to-add-an-event-handler-using-code.md
@@ -30,7 +30,7 @@ This example shows how to add an event handler to an element by using code.
[!code-vb[RoutedEventAddRemoveHandler#Handler](~/samples/snippets/visualbasic/VS_Snippets_Wpf/RoutedEventAddRemoveHandler/VisualBasic/default.xaml.vb#handler)]
> [!NOTE]
-> Adding an event handler in the initially parsed [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] page is much simpler. Within the object element where you want to add the event handler, add an attribute that matches the name of the event that you want to handle. Then specify the value of that attribute as the name of the event handler method that you defined in the code-behind file of the [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] page. For more information, see [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml) or [Routed Events Overview](routed-events-overview.md).
+> Adding an event handler in the initially parsed [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] page is much simpler. Within the object element where you want to add the event handler, add an attribute that matches the name of the event that you want to handle. Then specify the value of that attribute as the name of the event handler method that you defined in the code-behind file of the [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] page. For more information, see [XAML in WPF](xaml-in-wpf.md) or [Routed Events Overview](routed-events-overview.md).
## See also
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/how-to-apply-a-focusvisualstyle-to-a-control.md b/dotnet-desktop-guide/framework/wpf/advanced/how-to-apply-a-focusvisualstyle-to-a-control.md
index 2c68761..dbbf979 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/how-to-apply-a-focusvisualstyle-to-a-control.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/how-to-apply-a-focusvisualstyle-to-a-control.md
@@ -23,5 +23,5 @@ This example shows you how to create a focus visual style in resources and apply
## See also
-
-- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
+- [Styling and Templating](../controls/styles-templates-overview.md)
- [Styling for Focus in Controls, and FocusVisualStyle](styling-for-focus-in-controls-and-focusvisualstyle.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/how-to-create-a-rollover-effect-using-events.md b/dotnet-desktop-guide/framework/wpf/advanced/how-to-create-a-rollover-effect-using-events.md
index f98c9d2..e94f00a 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/how-to-create-a-rollover-effect-using-events.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/how-to-create-a-rollover-effect-using-events.md
@@ -16,7 +16,7 @@ This example shows how to change the color of an element as the mouse pointer en
This example consists of a [!INCLUDE[TLA#tla_xaml](../../../includes/tlasharptla-xaml-md.md)] file and a code-behind file.
> [!NOTE]
-> This example demonstrates how to use events, but the recommended way to achieve this same effect is to use a in a style. For more information, see [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview).
+> This example demonstrates how to use events, but the recommended way to achieve this same effect is to use a in a style. For more information, see [Styling and Templating](../controls/styles-templates-overview.md).
## Example
The following XAML creates the user interface, which consists of around a , and attaches the and event handlers to the .
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/how-to-define-and-reference-a-resource.md b/dotnet-desktop-guide/framework/wpf/advanced/how-to-define-and-reference-a-resource.md
index 9587877..418a168 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/how-to-define-and-reference-a-resource.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/how-to-define-and-reference-a-resource.md
@@ -24,4 +24,4 @@ Note that one of the properties within the setters of the `Label` style also ref
## See also
- [XAML Resources](/dotnet/desktop-wpf/fundamentals/xaml-resources-define)
-- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
+- [Styling and Templating](../controls/styles-templates-overview.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/how-to-implement-icommandsource.md b/dotnet-desktop-guide/framework/wpf/advanced/how-to-implement-icommandsource.md
index 4719544..49cd022 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/how-to-implement-icommandsource.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/how-to-implement-icommandsource.md
@@ -29,7 +29,7 @@ The following is the class definition:
[!code-csharp[ImplementICommandSource#ImplementICommandSourceClassDefinition](~/samples/snippets/csharp/VS_Snippets_Wpf/ImplementICommandSource/CSharp/CommandSlider.cs#implementicommandsourceclassdefinition)]
[!code-vb[ImplementICommandSource#ImplementICommandSourceClassDefinition](~/samples/snippets/visualbasic/VS_Snippets_Wpf/ImplementICommandSource/visualbasic/commandslider.vb#implementicommandsourceclassdefinition)]
-The next step is to implement the members. In this example, the properties are implemented as objects. This enables the properties to use data binding. For more information about the class, see the [Dependency Properties Overview](dependency-properties-overview.md). For more information about data binding, see the [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview).
+The next step is to implement the members. In this example, the properties are implemented as objects. This enables the properties to use data binding. For more information about the class, see the [Dependency Properties Overview](dependency-properties-overview.md). For more information about data binding, see the [Data Binding Overview](../data/data-binding-overview.md).
Only the property is shown here.
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/how-to-use-systemfonts.md b/dotnet-desktop-guide/framework/wpf/advanced/how-to-use-systemfonts.md
index 41d5a26..25511b3 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/how-to-use-systemfonts.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/how-to-use-systemfonts.md
@@ -37,6 +37,6 @@ This example shows how to use the static resources of the base class (also defined in System.Xaml) provides the pattern that all markup extensions should use in order to be supported in XAML readers and XAML writers, including in WPF XAML.
-- `x:Type` supplies the object for the named type. This facility is used most frequently in styles and templates. For details, see [x:Type Markup Extension](/dotnet/desktop-wpf/xaml-services/xtype-markup-extension).
+- `x:Type` supplies the object for the named type. This facility is used most frequently in styles and templates. For details, see [x:Type Markup Extension](/dotnet/desktop/xaml-services/xtype-markup-extension).
-- `x:Static` produces static values. The values come from value-type code entities that are not directly the type of a target property's value, but can be evaluated to that type. For details, see [x:Static Markup Extension](/dotnet/desktop-wpf/xaml-services/xstatic-markup-extension).
+- `x:Static` produces static values. The values come from value-type code entities that are not directly the type of a target property's value, but can be evaluated to that type. For details, see [x:Static Markup Extension](/dotnet/desktop/xaml-services/xstatic-markup-extension).
-- `x:Null` specifies `null` as a value for a property and can be used either for attributes or property element values. For details, see [x:Null Markup Extension](/dotnet/desktop-wpf/xaml-services/xnull-markup-extension).
+- `x:Null` specifies `null` as a value for a property and can be used either for attributes or property element values. For details, see [x:Null Markup Extension](/dotnet/desktop/xaml-services/xnull-markup-extension).
-- `x:Array` provides support for creation of general arrays in XAML syntax, for cases where the collection support provided by WPF base elements and control models is deliberately not used. For details, see [x:Array Markup Extension](/dotnet/desktop-wpf/xaml-services/xarray-markup-extension).
+- `x:Array` provides support for creation of general arrays in XAML syntax, for cases where the collection support provided by WPF base elements and control models is deliberately not used. For details, see [x:Array Markup Extension](/dotnet/desktop/xaml-services/xarray-markup-extension).
> [!NOTE]
> The `x:` prefix is used for the typical XAML namespace mapping of the XAML language intrinsics, in the root element of a XAML file or production. For example, the Visual Studio templates for WPF applications initiate a XAML file using this `x:` mapping. You could choose a different prefix token in your own XAML namespace mapping, but this documentation will assume the default `x:` mapping as a means of identifying those entities that are a defined part of the XAML namespace for the XAML language, as opposed to the WPF default namespace or other XAML namespaces not related to a specific framework.
@@ -92,7 +92,7 @@ This topic introduces the concept of markup extensions for XAML, including their
## Escape Sequences and Markup Extensions
- Attribute handling in a XAML processor uses the curly braces as indicators of a markup extension sequence. It is also possible to produce a literal curly brace character attribute value if necessary, by entering an escape sequence using an empty curly brace pair followed by the literal curly brace. See [{} Escape Sequence - Markup Extension](/dotnet/desktop-wpf/xaml-services/escape-sequence-markup-extension).
+ Attribute handling in a XAML processor uses the curly braces as indicators of a markup extension sequence. It is also possible to produce a literal curly brace character attribute value if necessary, by entering an escape sequence using an empty curly brace pair followed by the literal curly brace. See [{} Escape Sequence - Markup Extension](/dotnet/desktop/xaml-services/escape-sequence-markup-extension).
## Nesting Markup Extensions in XAML Usage
@@ -108,14 +108,14 @@ This topic introduces the concept of markup extensions for XAML, including their
## Markup Extensions and Property Element Syntax
When used as an object element that fills a property element value, a markup extension class is visually indistinguishable from a typical type-backed object element that can be used in XAML. The practical difference between a typical object element and a markup extension is that the markup extension is either evaluated to a typed value or deferred as an expression. Therefore the mechanisms for any possible type errors of property values for the markup extension will be different, similar to how a late-bound property is treated in other programming models. An ordinary object element will be evaluated for type match against the target property it is setting when the XAML is parsed.
- Most markup extensions, when used in object element syntax to fill a property element, would not have content or any further property element syntax within. Thus you would close the object element tag, and provide no child elements. Whenever any object element is encountered by a XAML processor, the constructor for that class is called, which instantiates the object created from the parsed element. A markup extension class is no different: if you want your markup extension to be usable in object element syntax, you must provide a parameterless constructor. Some existing markup extensions have at least one required property value that must be specified for effective initialization. If so, that property value is typically given as a property attribute on the object element. In the [XAML Namespace (x:) Language Features](/dotnet/desktop-wpf/xaml-services/namespace-language-features) and [WPF XAML Extensions](wpf-xaml-extensions.md) reference pages, markup extensions that have required properties (and the names of required properties) will be noted. Reference pages will also note if either object element syntax or attribute syntax is disallowed for particular markup extensions. A notable case is [x:Array Markup Extension](/dotnet/desktop-wpf/xaml-services/xarray-markup-extension), which cannot support attribute syntax because the contents of that array must be specified within the tagging as content. The array contents are handled as general objects, therefore no default type converter for the attribute is feasible. Also, [x:Array Markup Extension](/dotnet/desktop-wpf/xaml-services/xarray-markup-extension) requires a `type` parameter.
+ Most markup extensions, when used in object element syntax to fill a property element, would not have content or any further property element syntax within. Thus you would close the object element tag, and provide no child elements. Whenever any object element is encountered by a XAML processor, the constructor for that class is called, which instantiates the object created from the parsed element. A markup extension class is no different: if you want your markup extension to be usable in object element syntax, you must provide a parameterless constructor. Some existing markup extensions have at least one required property value that must be specified for effective initialization. If so, that property value is typically given as a property attribute on the object element. In the [XAML Namespace (x:) Language Features](/dotnet/desktop/xaml-services/namespace-language-features) and [WPF XAML Extensions](wpf-xaml-extensions.md) reference pages, markup extensions that have required properties (and the names of required properties) will be noted. Reference pages will also note if either object element syntax or attribute syntax is disallowed for particular markup extensions. A notable case is [x:Array Markup Extension](/dotnet/desktop/xaml-services/xarray-markup-extension), which cannot support attribute syntax because the contents of that array must be specified within the tagging as content. The array contents are handled as general objects, therefore no default type converter for the attribute is feasible. Also, [x:Array Markup Extension](/dotnet/desktop/xaml-services/xarray-markup-extension) requires a `type` parameter.
## See also
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
-- [XAML Namespace (x:) Language Features](/dotnet/desktop-wpf/xaml-services/namespace-language-features)
+- [XAML in WPF](xaml-in-wpf.md)
+- [XAML Namespace (x:) Language Features](/dotnet/desktop/xaml-services/namespace-language-features)
- [WPF XAML Extensions](wpf-xaml-extensions.md)
- [StaticResource Markup Extension](staticresource-markup-extension.md)
- [Binding Markup Extension](binding-markup-extension.md)
- [DynamicResource Markup Extension](dynamicresource-markup-extension.md)
-- [x:Type Markup Extension](/dotnet/desktop-wpf/xaml-services/xtype-markup-extension)
+- [x:Type Markup Extension](/dotnet/desktop/xaml-services/xtype-markup-extension)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/mc-ignorable-attribute.md b/dotnet-desktop-guide/framework/wpf/advanced/mc-ignorable-attribute.md
index e591cc5..90ac579 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/mc-ignorable-attribute.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/mc-ignorable-attribute.md
@@ -63,5 +63,5 @@ Specifies which XML namespace prefixes encountered in a markup file may be ignor
-
- [PresentationOptions:Freeze Attribute](presentationoptions-freeze-attribute.md)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [XAML in WPF](xaml-in-wpf.md)
- [Documents in WPF](documents-in-wpf.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/mc-processcontent-attribute.md b/dotnet-desktop-guide/framework/wpf/advanced/mc-processcontent-attribute.md
index cfb3cb0..e0aa5b5 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/mc-processcontent-attribute.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/mc-processcontent-attribute.md
@@ -45,4 +45,4 @@ Specifies which [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.
## See also
- [mc:Ignorable Attribute](mc-ignorable-attribute.md)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [XAML in WPF](xaml-in-wpf.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/merged-resource-dictionaries.md b/dotnet-desktop-guide/framework/wpf/advanced/merged-resource-dictionaries.md
index e38292e..b1d5a9a 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/merged-resource-dictionaries.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/merged-resource-dictionaries.md
@@ -14,7 +14,7 @@ ms.assetid: d159531f-05d4-49fd-b951-c332de51e5bc
[!code-xaml[ResourceMergeDictionary#MergedXAML](~/samples/snippets/csharp/VS_Snippets_Wpf/ResourceMergeDictionary/CS/default.xaml#mergedxaml)]
- Note that the element does not have an [x:Key Directive](/dotnet/desktop-wpf/xaml-services/xkey-directive), which is generally required for all items in a resource collection. But another reference within the collection is a special case, reserved for this merged resource dictionary scenario. The that introduces a merged resource dictionary cannot have an [x:Key Directive](/dotnet/desktop-wpf/xaml-services/xkey-directive). Typically, each within the collection specifies a attribute. The value of should be a uniform resource identifier (URI) that resolves to the location of the resources file to be merged. The destination of that URI must be another [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] file, with as its root element.
+ Note that the element does not have an [x:Key Directive](/dotnet/desktop/xaml-services/xkey-directive), which is generally required for all items in a resource collection. But another reference within the collection is a special case, reserved for this merged resource dictionary scenario. The that introduces a merged resource dictionary cannot have an [x:Key Directive](/dotnet/desktop/xaml-services/xkey-directive). Typically, each within the collection specifies a attribute. The value of should be a uniform resource identifier (URI) that resolves to the location of the resources file to be merged. The destination of that URI must be another [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] file, with as its root element.
> [!NOTE]
> It is legal to define resources within a that is specified as a merged dictionary, either as an alternative to specifying , or in addition to whatever resources are included from the specified source. However, this is not a common scenario; the main scenario for merged dictionaries is to merge resources from external file locations. If you want to specify resources within the markup for a page, you should typically define these in the main and not in the merged dictionaries.
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/object-lifetime-events.md b/dotnet-desktop-guide/framework/wpf/advanced/object-lifetime-events.md
index f3c6a71..b64341b 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/object-lifetime-events.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/object-lifetime-events.md
@@ -30,7 +30,7 @@ This topic describes the specific [!INCLUDE[TLA2#tla_winclient](../../../include
## Prerequisites
- This topic assumes that you understand dependency properties from the perspective of a consumer of existing dependency properties on [!INCLUDE[TLA#tla_winclient](../../../includes/tlasharptla-winclient-md.md)] classes, and have read the [Dependency Properties Overview](dependency-properties-overview.md) topic. In order to follow the examples in this topic, you should also understand [!INCLUDE[TLA#tla_xaml](../../../includes/tlasharptla-xaml-md.md)] (see [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)) and know how to write [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] applications.
+ This topic assumes that you understand dependency properties from the perspective of a consumer of existing dependency properties on [!INCLUDE[TLA#tla_winclient](../../../includes/tlasharptla-winclient-md.md)] classes, and have read the [Dependency Properties Overview](dependency-properties-overview.md) topic. In order to follow the examples in this topic, you should also understand [!INCLUDE[TLA#tla_xaml](../../../includes/tlasharptla-xaml-md.md)] (see [XAML in WPF](xaml-in-wpf.md)) and know how to write [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] applications.
## Object Lifetime Events
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/optimizing-performance-controls.md b/dotnet-desktop-guide/framework/wpf/advanced/optimizing-performance-controls.md
index 278fe6c..fb64224 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/optimizing-performance-controls.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/optimizing-performance-controls.md
@@ -75,5 +75,5 @@ The following table lists the common controls for displaying data and their supp
- [Layout and Design](optimizing-performance-layout-and-design.md)
- [Data Binding](optimizing-performance-data-binding.md)
- [Controls](../controls/index.md)
-- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
+- [Styling and Templating](../controls/styles-templates-overview.md)
- [Walkthrough: Caching Application Data in a WPF Application](walkthrough-caching-application-data-in-a-wpf-application.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/optimizing-performance-data-binding.md b/dotnet-desktop-guide/framework/wpf/advanced/optimizing-performance-data-binding.md
index c3364cb..02b6995 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/optimizing-performance-data-binding.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/optimizing-performance-data-binding.md
@@ -76,5 +76,5 @@ ms.assetid: 1506a35d-c009-43db-9f1e-4e230ad5be73
- [Application Resources](optimizing-performance-application-resources.md)
- [Text](optimizing-performance-text.md)
- [Other Performance Recommendations](optimizing-performance-other-recommendations.md)
-- [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview)
+- [Data Binding Overview](../data/data-binding-overview.md)
- [Walkthrough: Caching Application Data in a WPF Application](walkthrough-caching-application-data-in-a-wpf-application.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/optimizing-wpf-application-performance.md b/dotnet-desktop-guide/framework/wpf/advanced/optimizing-wpf-application-performance.md
index ce7a90b..15ab0af 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/optimizing-wpf-application-performance.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/optimizing-wpf-application-performance.md
@@ -54,7 +54,7 @@ This section is intended as a reference for [!INCLUDE[TLA#tla_winclient](../../.
- [Documents in WPF](documents-in-wpf.md)
- [Drawing Formatted Text](drawing-formatted-text.md)
- [Typography in WPF](typography-in-wpf.md)
-- [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview)
+- [Data Binding Overview](../data/data-binding-overview.md)
- [Navigation Overview](../app-development/navigation-overview.md)
- [Animation Tips and Tricks](../graphics-multimedia/animation-tips-and-tricks.md)
- [Walkthrough: Caching Application Data in a WPF Application](walkthrough-caching-application-data-in-a-wpf-application.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/property-change-events.md b/dotnet-desktop-guide/framework/wpf/advanced/property-change-events.md
index 52dc8e9..c61a0fa 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/property-change-events.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/property-change-events.md
@@ -53,7 +53,7 @@ ms.assetid: 0a7989df-9674-4cc1-bc50-5d8ef5d9c055
Property triggers are generally appropriate for scenarios where one or more appearance properties should change, based on the state of another property on the same element.
- To learn more about property triggers, see [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview).
+ To learn more about property triggers, see [Styling and Templating](../controls/styles-templates-overview.md).
## See also
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/propertypath-xaml-syntax.md b/dotnet-desktop-guide/framework/wpf/advanced/propertypath-xaml-syntax.md
index 4c8c910..9aa8f58 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/propertypath-xaml-syntax.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/propertypath-xaml-syntax.md
@@ -88,7 +88,7 @@ For use as storyboard target, the property specified as `propertyName` must be a
```
-The / in this syntax is used to navigate within a hierarchical data source object, and multiple steps into the hierarchy with successive / characters are supported. The source traversal accounts for the current record pointer position, which is determined by synchronizing the data with the UI of its view. For details on binding with hierarchical data source objects, and the concept of current record pointer in data binding, see [Use the Master-Detail Pattern with Hierarchical Data](../data/how-to-use-the-master-detail-pattern-with-hierarchical-data.md) or [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview).
+The / in this syntax is used to navigate within a hierarchical data source object, and multiple steps into the hierarchy with successive / characters are supported. The source traversal accounts for the current record pointer position, which is determined by synchronizing the data with the UI of its view. For details on binding with hierarchical data source objects, and the concept of current record pointer in data binding, see [Use the Master-Detail Pattern with Hierarchical Data](../data/how-to-use-the-master-detail-pattern-with-hierarchical-data.md) or [Data Binding Overview](../data/data-binding-overview.md).
> [!NOTE]
> Superficially, this syntax resembles XPath. A true XPath expression for binding to an XML data source is not used as a value and should instead be used for the mutually exclusive property.
@@ -186,7 +186,7 @@ In order to support cloning for animating a that
`propertyName2` must be the name of a dependency property that exists on the object that is the value of `propertyName`. In other words, `propertyName2` must exist as a dependency property on the type that is the `propertyName` .
-Indirect targeting of animations is necessary because of applied styles and templates. In order to target an animation, you need a on a target object, and that name is established by [x:Name](/dotnet/desktop-wpf/xaml-services/xname-directive) or . Although template and style elements also can have names, those names are only valid within the namescope of the style and template. (If templates and styles did share namescopes with application markup, names couldn't be unique. The styles and templates are literally shared between instances and would perpetuate duplicate names.) Thus, if the individual properties of an element that you might wish to animate came from a style or template, you need to start with a named element instance that is not from a style template, and then target into the style or template visual tree to arrive at the property you wish to animate.
+Indirect targeting of animations is necessary because of applied styles and templates. In order to target an animation, you need a on a target object, and that name is established by [x:Name](/dotnet/desktop/xaml-services/xname-directive) or . Although template and style elements also can have names, those names are only valid within the namescope of the style and template. (If templates and styles did share namescopes with application markup, names couldn't be unique. The styles and templates are literally shared between instances and would perpetuate duplicate names.) Thus, if the individual properties of an element that you might wish to animate came from a style or template, you need to start with a named element instance that is not from a style template, and then target into the style or template visual tree to arrive at the property you wish to animate.
For instance, the property of a is a complete (actually a ) that came from a theme template. To animate a completely, there would need to be a BrushAnimation (probably one for every type) and there is no such type. To animate a Brush, you instead animate properties of a particular type. You need to get from to its to apply a there. The property path for this example would be `Background.Color`.
@@ -221,5 +221,5 @@ In general, is designed to use two different
## See also
-
-- [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview)
+- [Data Binding Overview](../data/data-binding-overview.md)
- [Storyboards Overview](../graphics-multimedia/storyboards-overview.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/read-only-dependency-properties.md b/dotnet-desktop-guide/framework/wpf/advanced/read-only-dependency-properties.md
index 840d3b5..af906d9 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/read-only-dependency-properties.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/read-only-dependency-properties.md
@@ -39,4 +39,4 @@ This topic describes read-only dependency properties, including existing read-on
- [Dependency Properties Overview](dependency-properties-overview.md)
- [Custom Dependency Properties](custom-dependency-properties.md)
-- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
+- [Styling and Templating](../controls/styles-templates-overview.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/relativesource-markupextension.md b/dotnet-desktop-guide/framework/wpf/advanced/relativesource-markupextension.md
index 8c4e30b..68c9948 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/relativesource-markupextension.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/relativesource-markupextension.md
@@ -65,7 +65,7 @@ Specifies properties of a binding sour
`{RelativeSource FindAncestor}` is mainly used in control templates or predictable self-contained UI compositions, for cases where a control is always expected to be in a visual tree of a certain ancestor type. For example, items of an items control might use `FindAncestor` usages to bind to properties of their items control parent ancestor. Or, elements that are part of control composition in a template can use `FindAncestor` bindings to the parent elements in that same composition structure.
-In the object element syntax for `FindAncestor` mode shown in the XAML Syntax sections, the second object element syntax is used specifically for `FindAncestor` mode. `FindAncestor` mode requires an value. You must set as an attribute using an [x:Type Markup Extension](/dotnet/desktop-wpf/xaml-services/xtype-markup-extension) reference to the type of ancestor to look for. The value is used when the binding request is processed at run-time.
+In the object element syntax for `FindAncestor` mode shown in the XAML Syntax sections, the second object element syntax is used specifically for `FindAncestor` mode. `FindAncestor` mode requires an value. You must set as an attribute using an [x:Type Markup Extension](/dotnet/desktop/xaml-services/xtype-markup-extension) reference to the type of ancestor to look for. The value is used when the binding request is processed at run-time.
For `FindAncestor` mode, the optional property can help disambiguate the ancestor lookup in cases where there is possibly more than one ancestor of that type existing in the element tree.
@@ -100,7 +100,7 @@ In the following example, the first in
```
-Describing data binding as a concept is not covered here, see [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview).
+Describing data binding as a concept is not covered here, see [Data Binding Overview](../data/data-binding-overview.md).
In the [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] XAML processor implementation, the handling for this markup extension is defined by the class.
@@ -109,9 +109,9 @@ In the [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md
## See also
-
-- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [Styling and Templating](../controls/styles-templates-overview.md)
+- [XAML in WPF](xaml-in-wpf.md)
- [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md)
-- [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview)
+- [Data Binding Overview](../data/data-binding-overview.md)
- [Binding Declarations Overview](../data/binding-declarations-overview.md)
-- [x:Type Markup Extension](/dotnet/desktop-wpf/xaml-services/xtype-markup-extension)
+- [x:Type Markup Extension](/dotnet/desktop/xaml-services/xtype-markup-extension)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/resources-and-code.md b/dotnet-desktop-guide/framework/wpf/advanced/resources-and-code.md
index 56c2943..1c09215 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/resources-and-code.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/resources-and-code.md
@@ -36,9 +36,9 @@ This overview concentrates on how [!INCLUDE[TLA#tla_winclient](../../../includes
## Using Objects as Keys
- Most resource usages will set the key of the resource to be a string. However, various [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] features deliberately do not use a string type to specify keys, instead this parameter is an object. The capability of having the resource be keyed by an object is used by the [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] style and theming support. The styles in themes which become the default style for an otherwise non-styled control are each keyed by the of the control that they should apply to. Being keyed by type provides a reliable lookup mechanism that works on default instances of each control type, and type can be detected by reflection and used for styling derived classes even though the derived type otherwise has no default style. You can specify a key for a resource defined in [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] by using the [x:Type Markup Extension](/dotnet/desktop-wpf/xaml-services/xtype-markup-extension). Similar extensions exist for other nonstring key usages that support [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] features, such as [ComponentResourceKey Markup Extension](componentresourcekey-markup-extension.md).
+ Most resource usages will set the key of the resource to be a string. However, various [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] features deliberately do not use a string type to specify keys, instead this parameter is an object. The capability of having the resource be keyed by an object is used by the [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] style and theming support. The styles in themes which become the default style for an otherwise non-styled control are each keyed by the of the control that they should apply to. Being keyed by type provides a reliable lookup mechanism that works on default instances of each control type, and type can be detected by reflection and used for styling derived classes even though the derived type otherwise has no default style. You can specify a key for a resource defined in [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] by using the [x:Type Markup Extension](/dotnet/desktop/xaml-services/xtype-markup-extension). Similar extensions exist for other nonstring key usages that support [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] features, such as [ComponentResourceKey Markup Extension](componentresourcekey-markup-extension.md).
## See also
- [XAML Resources](/dotnet/desktop-wpf/fundamentals/xaml-resources-define)
-- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
+- [Styling and Templating](../controls/styles-templates-overview.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/resources-wpf.md b/dotnet-desktop-guide/framework/wpf/advanced/resources-wpf.md
index c45b8bd..77c464b 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/resources-wpf.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/resources-wpf.md
@@ -24,7 +24,7 @@ A resource is an object that can be reused in different places in your applicati
[DynamicResource Markup Extension](dynamicresource-markup-extension.md)
- [x:Key Directive](/dotnet/desktop-wpf/xaml-services/xkey-directive)
+ [x:Key Directive](/dotnet/desktop/xaml-services/xkey-directive)
## Related Sections
[XAML in WPF](xaml-in-wpf.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/routed-events-overview.md b/dotnet-desktop-guide/framework/wpf/advanced/routed-events-overview.md
index 362344f..0adbec3 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/routed-events-overview.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/routed-events-overview.md
@@ -26,7 +26,7 @@ This topic describes the concept of routed events in [!INCLUDE[TLA#tla_winclient
## Prerequisites
-This topic assumes that you have basic knowledge of the common language runtime (CLR) and object-oriented programming, as well as the concept of how the relationships between [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] elements can be conceptualized as a tree. In order to follow the examples in this topic, you should also understand [!INCLUDE[TLA#tla_xaml](../../../includes/tlasharptla-xaml-md.md)] and know how to write very basic [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] applications or pages. For more information, see [Walkthrough: My first WPF desktop application](../getting-started/walkthrough-my-first-wpf-desktop-application.md) and [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml).
+This topic assumes that you have basic knowledge of the common language runtime (CLR) and object-oriented programming, as well as the concept of how the relationships between [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] elements can be conceptualized as a tree. In order to follow the examples in this topic, you should also understand [!INCLUDE[TLA#tla_xaml](../../../includes/tlasharptla-xaml-md.md)] and know how to write very basic [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] applications or pages. For more information, see [Walkthrough: My first WPF desktop application](../getting-started/walkthrough-my-first-wpf-desktop-application.md) and [XAML in WPF](xaml-in-wpf.md).
@@ -84,7 +84,7 @@ To add a handler for an event using [!INCLUDE[TLA2#tla_xaml](../../../includes/t
[!code-xaml[EventOvwSupport#SimplestSyntax](~/samples/snippets/csharp/VS_Snippets_Wpf/EventOvwSupport/CSharp/default.xaml#simplestsyntax)]
-The [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] syntax for adding standard CLR event handlers is the same for adding routed event handlers, because you are really adding handlers to the CLR event wrapper, which has a routed event implementation underneath. For more information about adding event handlers in [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)], see [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml).
+The [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] syntax for adding standard CLR event handlers is the same for adding routed event handlers, because you are really adding handlers to the CLR event wrapper, which has a routed event implementation underneath. For more information about adding event handlers in [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)], see [XAML in WPF](xaml-in-wpf.md).
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/staticresource-markup-extension.md b/dotnet-desktop-guide/framework/wpf/advanced/staticresource-markup-extension.md
index 777dd56..be8fc4d 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/staticresource-markup-extension.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/staticresource-markup-extension.md
@@ -33,16 +33,16 @@ Provides a value for any [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla
|||
|-|-|
-|`key`|The key for the requested resource. This key was initially assigned by the [x:Key Directive](/dotnet/desktop-wpf/xaml-services/xkey-directive) if a resource was created in markup, or was provided as the `key` parameter when calling if the resource was created in code.|
+|`key`|The key for the requested resource. This key was initially assigned by the [x:Key Directive](/dotnet/desktop/xaml-services/xkey-directive) if a resource was created in markup, or was provided as the `key` parameter when calling if the resource was created in code.|
## Remarks
> [!IMPORTANT]
> A `StaticResource` must not attempt to make a forward reference to a resource that is defined lexically further within the [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] file. Attempting to do so is not supported, and even if such a reference does not fail, attempting the forward reference will incur a load time performance penalty when the internal hash tables representing a are searched. For best results, adjust the composition of your resource dictionaries such that forward references can be avoided. If you cannot avoid a forward reference, use [DynamicResource Markup Extension](dynamicresource-markup-extension.md) instead.
- The specified should correspond to an existing resource, identified with an [x:Key Directive](/dotnet/desktop-wpf/xaml-services/xkey-directive) at some level in your page, application, the available control themes and external resources, or system resources. The resource lookup occurs in that order. For more information about resource lookup behavior for static and dynamic resources, see [XAML Resources](/dotnet/desktop-wpf/fundamentals/xaml-resources-define).
+ The specified should correspond to an existing resource, identified with an [x:Key Directive](/dotnet/desktop/xaml-services/xkey-directive) at some level in your page, application, the available control themes and external resources, or system resources. The resource lookup occurs in that order. For more information about resource lookup behavior for static and dynamic resources, see [XAML Resources](/dotnet/desktop-wpf/fundamentals/xaml-resources-define).
- A resource key can be any string defined in the [XamlName Grammar](/dotnet/desktop-wpf/xaml-services/xamlname-grammar). A resource key can also be other object types, such as a . A key is fundamental to how controls can be styled by themes, through an implicit style key. For more information, see [Control Authoring Overview](../controls/control-authoring-overview.md).
+ A resource key can be any string defined in the [XamlName Grammar](/dotnet/desktop/xaml-services/xamlname-grammar). A resource key can also be other object types, such as a . A key is fundamental to how controls can be styled by themes, through an implicit style key. For more information, see [Control Authoring Overview](../controls/control-authoring-overview.md).
The alternative declarative means of referencing a resource is as a [DynamicResource Markup Extension](dynamicresource-markup-extension.md).
@@ -64,8 +64,8 @@ Provides a value for any [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla
## See also
-- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [Styling and Templating](../controls/styles-templates-overview.md)
+- [XAML in WPF](xaml-in-wpf.md)
- [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md)
- [XAML Resources](/dotnet/desktop-wpf/fundamentals/xaml-resources-define)
- [Resources and Code](resources-and-code.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/styling-for-focus-in-controls-and-focusvisualstyle.md b/dotnet-desktop-guide/framework/wpf/advanced/styling-for-focus-in-controls-and-focusvisualstyle.md
index 61be10f..eefb4b0 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/styling-for-focus-in-controls-and-focusvisualstyle.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/styling-for-focus-in-controls-and-focusvisualstyle.md
@@ -57,7 +57,7 @@ ms.assetid: 786ac576-011b-4d72-913b-558deccb9b35
## Alternatives to Using a Focus Visual Style
For situations where using a focus visual style is not appropriate, either because you are only styling single controls or because you want greater control over the control template, there are many other accessible properties and techniques that can create visual behavior in response to changes in focus.
- Triggers, setters, and event setters are all discussed in detail in [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview). Routed event handling is discussed in [Routed Events Overview](routed-events-overview.md).
+ Triggers, setters, and event setters are all discussed in detail in [Styling and Templating](../controls/styles-templates-overview.md). Routed event handling is discussed in [Routed Events Overview](routed-events-overview.md).
### IsKeyboardFocused
If you are specifically interested in keyboard focus, the dependency property can be used for a property . A property trigger in either a style or template is a more appropriate technique for defining a keyboard focus behavior that is very specifically for a single control, and which might not visually match the keyboard focus behavior for other controls.
@@ -72,6 +72,6 @@ ms.assetid: 786ac576-011b-4d72-913b-558deccb9b35
## See also
-
-- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
+- [Styling and Templating](../controls/styles-templates-overview.md)
- [Focus Overview](focus-overview.md)
- [Input Overview](input-overview.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/templatebinding-markup-extension.md b/dotnet-desktop-guide/framework/wpf/advanced/templatebinding-markup-extension.md
index ae09d3e..435b37a 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/templatebinding-markup-extension.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/templatebinding-markup-extension.md
@@ -59,8 +59,8 @@ Links the value of a property in a control template to be the value of another p
-
-
-- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [Styling and Templating](../controls/styles-templates-overview.md)
+- [XAML in WPF](xaml-in-wpf.md)
- [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md)
- [RelativeSource MarkupExtension](relativesource-markupextension.md)
- [Binding Markup Extension](binding-markup-extension.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/themedictionary-markup-extension.md b/dotnet-desktop-guide/framework/wpf/advanced/themedictionary-markup-extension.md
index 81dc2c5..ae782f6 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/themedictionary-markup-extension.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/themedictionary-markup-extension.md
@@ -59,7 +59,7 @@ Provides a way for custom control authors or applications that integrate third-p
## See also
-- [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [Styling and Templating](../controls/styles-templates-overview.md)
+- [XAML in WPF](xaml-in-wpf.md)
- [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md)
- [WPF Application Resource, Content, and Data Files](../app-development/wpf-application-resource-content-and-data-files.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/trees-in-wpf.md b/dotnet-desktop-guide/framework/wpf/advanced/trees-in-wpf.md
index ca80dac..fbdeb50 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/trees-in-wpf.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/trees-in-wpf.md
@@ -37,7 +37,7 @@ In many technologies, elements and components are organized in a tree structure
However, the logical tree is not the entire object graph that exists for your application UI at run time, even with the XAML implicit syntax items factored out. The main reason for this is visuals and templates. For example, consider the . The logical tree reports the object and also its string `Content`. But there is more to this button in the run-time object tree. In particular, the button only appears on screen the way it does because a specific control template was applied. The visuals that come from an applied template (such as the template-defined of dark gray around the visual button) are not reported in the logical tree, even if you are looking at the logical tree during run time (such as handling an input event from the visible UI and then reading the logical tree). To find the template visuals, you would instead need to examine the visual tree.
- For more information about how [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] syntax maps to the created object graph, and implicit syntax in XAML, see [XAML Syntax In Detail](xaml-syntax-in-detail.md) or [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml).
+ For more information about how [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] syntax maps to the created object graph, and implicit syntax in XAML, see [XAML Syntax In Detail](xaml-syntax-in-detail.md) or [XAML in WPF](xaml-in-wpf.md).
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/typeconverters-and-xaml.md b/dotnet-desktop-guide/framework/wpf/advanced/typeconverters-and-xaml.md
index fa1c350..71711c7 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/typeconverters-and-xaml.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/typeconverters-and-xaml.md
@@ -105,6 +105,6 @@ This topic introduces the purpose of type conversion from string as a general XA
## See also
-
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [XAML in WPF](xaml-in-wpf.md)
- [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md)
- [XAML Syntax In Detail](xaml-syntax-in-detail.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/types-migrated-from-wpf-to-system.md b/dotnet-desktop-guide/framework/wpf/advanced/types-migrated-from-wpf-to-system.md
index c6a8715..7a45efe 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/types-migrated-from-wpf-to-system.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/types-migrated-from-wpf-to-system.md
@@ -62,7 +62,7 @@ The following table contains a list of the XAML feature-support classes that are
||`{x:Static ...}`|
||`{x:Type ...}`|
-Although System.Xaml may not have specific support classes, the general logic for processing language features for the XAML language now resides in System.Xaml and its implemented XAML readers and XAML writers. For example, `x:TypeArguments` is an attribute that is processed by XAML readers and XAML writers from System.Xaml implementations; it can be noted in the XAML node stream, has handling in the default (CLR-based) XAML schema context, has a XAML type-system representation, and so on. As a result, the reference documentation for all XAML language-level features is a subtopic for [XAML Services](/dotnet/desktop-wpf/xaml-services/index) in the [Desktop Guide for Windows Presentation Foundation (WPF)](/dotnet/desktop-wpf/overview/index).
+Although System.Xaml may not have specific support classes, the general logic for processing language features for the XAML language now resides in System.Xaml and its implemented XAML readers and XAML writers. For example, `x:TypeArguments` is an attribute that is processed by XAML readers and XAML writers from System.Xaml implementations; it can be noted in the XAML node stream, has handling in the default (CLR-based) XAML schema context, has a XAML type-system representation, and so on. For more information about the reference documentation for XAML, see [XAML Services](/dotnet/desktop/xaml-services/index).
## ValueSerializer and Supporting Classes
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/visual-basic-and-wpf-event-handling.md b/dotnet-desktop-guide/framework/wpf/advanced/visual-basic-and-wpf-event-handling.md
index 3a90e44..95de032 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/visual-basic-and-wpf-event-handling.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/visual-basic-and-wpf-event-handling.md
@@ -10,7 +10,7 @@ ms.assetid: ad4eb9aa-3afc-4a71-8cf6-add3fbea54a1
For the Microsoft Visual Basic .NET language specifically, you can use the language-specific `Handles` keyword to associate event handlers with instances, instead of attaching event handlers with attributes or using the method. However, the `Handles` technique for attaching handlers to instances does have some limitations, because the `Handles` syntax cannot support some of the specific routed event features of the [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] event system.
## Using "Handles" in a WPF Application
- The event handlers that are connected to instances and events with `Handles` must all be defined within the partial class declaration of the instance, which is also a requirement for event handlers that are assigned through attribute values on elements. You can only specify `Handles` for an element on the page that has a property value (or [x:Name Directive](/dotnet/desktop-wpf/xaml-services/xname-directive) declared). This is because the in [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] creates the instance reference that is necessary to support the *Instance.Event* reference format required by the `Handles` syntax. The only element that can be used for `Handles` without a reference is the root-element instance that defines the partial class.
+ The event handlers that are connected to instances and events with `Handles` must all be defined within the partial class declaration of the instance, which is also a requirement for event handlers that are assigned through attribute values on elements. You can only specify `Handles` for an element on the page that has a property value (or [x:Name Directive](/dotnet/desktop/xaml-services/xname-directive) declared). This is because the in [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] creates the instance reference that is necessary to support the *Instance.Event* reference format required by the `Handles` syntax. The only element that can be used for `Handles` without a reference is the root-element instance that defines the partial class.
You can assign the same handler to multiple elements by separating *Instance.Event* references after `Handles` with commas.
@@ -31,7 +31,7 @@ For the Microsoft Visual Basic .NET language specifically, you can use the langu
> Do not use the `Handles` syntax in Visual Basic code when you specify an event handler for the same event in XAML. In this case, the event handler is called twice.
## How WPF Implements "Handles" Functionality
- When a [!INCLUDE[TLA#tla_xaml](../../../includes/tlasharptla-xaml-md.md)] page is compiled, the intermediate file declares `Friend` `WithEvents` references to every element on the page that has a property set (or [x:Name Directive](/dotnet/desktop-wpf/xaml-services/xname-directive) declared). Each named instance is potentially an element that can be assigned to a handler through `Handles`.
+ When a [!INCLUDE[TLA#tla_xaml](../../../includes/tlasharptla-xaml-md.md)] page is compiled, the intermediate file declares `Friend` `WithEvents` references to every element on the page that has a property set (or [x:Name Directive](/dotnet/desktop/xaml-services/xname-directive) declared). Each named instance is potentially an element that can be assigned to a handler through `Handles`.
> [!NOTE]
> Within Visual Studio, IntelliSense can show you completion for which elements are available for a `Handles` reference in a page. However, this might take one compile pass so that the intermediate file can populate all the `Friends` references.
@@ -41,4 +41,4 @@ For the Microsoft Visual Basic .NET language specifically, you can use the langu
-
- [Marking Routed Events as Handled, and Class Handling](marking-routed-events-as-handled-and-class-handling.md)
- [Routed Events Overview](routed-events-overview.md)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [XAML in WPF](xaml-in-wpf.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/walkthrough-hosting-a-wpf-composite-control-in-windows-forms.md b/dotnet-desktop-guide/framework/wpf/advanced/walkthrough-hosting-a-wpf-composite-control-in-windows-forms.md
index 41b724e..d461245 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/walkthrough-hosting-a-wpf-composite-control-in-windows-forms.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/walkthrough-hosting-a-wpf-composite-control-in-windows-forms.md
@@ -82,7 +82,7 @@ You need Visual Studio to complete this walkthrough.
#### Styling the UI Elements
Many of the elements on the data-entry form have a similar appearance, which means that they have identical settings for several of their properties. Rather than setting each element's attributes separately, the previous XAML uses elements to define standard property settings for classes of elements. This approach reduces the complexity of the control and enables you to change the appearance of multiple elements through a single style attribute.
- The elements are contained in the element's property, so they can be used by all elements in the control. If a style is named, you apply it to an element by adding a element set to the style's name. Styles that are not named become the default style for the element. For more information about [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] styles, see [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview).
+ The elements are contained in the element's property, so they can be used by all elements in the control. If a style is named, you apply it to an element by adding a element set to the style's name. Styles that are not named become the default style for the element. For more information about [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] styles, see [Styling and Templating](../controls/styles-templates-overview.md).
The following XAML shows the elements for the composite control. To see how the styles are applied to elements, see the previous XAML. For example, the last element has the `inlineText` style, and the last element uses the default style.
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/weak-event-patterns.md b/dotnet-desktop-guide/framework/wpf/advanced/weak-event-patterns.md
index aba3e4a..18278c6 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/weak-event-patterns.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/weak-event-patterns.md
@@ -130,4 +130,4 @@ In applications, it is possible that handlers that are attached to event sources
-
-
- [Routed Events Overview](routed-events-overview.md)
-- [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview)
+- [Data Binding Overview](../data/data-binding-overview.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/wpf-architecture.md b/dotnet-desktop-guide/framework/wpf/advanced/wpf-architecture.md
index b8554c8..9256ee6 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/wpf-architecture.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/wpf-architecture.md
@@ -145,6 +145,6 @@ This topic provides a guided tour of the Windows Presentation Foundation (WPF) c
-
-
-
-- [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview)
+- [Data Binding Overview](../data/data-binding-overview.md)
- [Layout](layout.md)
- [Animation Overview](../graphics-multimedia/animation-overview.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/wpf-globalization-and-localization-overview.md b/dotnet-desktop-guide/framework/wpf/advanced/wpf-globalization-and-localization-overview.md
index 2376185..1b03e46 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/wpf-globalization-and-localization-overview.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/wpf-globalization-and-localization-overview.md
@@ -38,7 +38,7 @@ When you design a [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-w
- Enable on to avoid clipping.
-- Set the `xml:lang` attribute. This attribute describes the culture of a specific element and its child elements. The value of this property changes the behavior of several features in [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)]. For example, it changes the behavior of hyphenation, spell checking, number substitution, complex script shaping, and font fallback. See [Globalization for WPF](globalization-for-wpf.md) for more information about setting the [xml:lang Handling in XAML](/dotnet/desktop-wpf/xaml-services/xml-language-handling).
+- Set the `xml:lang` attribute. This attribute describes the culture of a specific element and its child elements. The value of this property changes the behavior of several features in [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)]. For example, it changes the behavior of hyphenation, spell checking, number substitution, complex script shaping, and font fallback. See [Globalization for WPF](globalization-for-wpf.md) for more information about setting the [xml:lang Handling in XAML](/dotnet/desktop/xaml-services/xml-language-handling).
- Create a customized composite font to obtain better control of fonts that are used for different languages. By default, [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] uses the GlobalUserInterface.composite font in your Windows\Fonts directory.
@@ -144,7 +144,7 @@ Note that of the example uses the shared-sizing feature of or the generic equivalent ().
-- Derives from (for more information about arrays in XAML, see [x:Array Markup Extension](/dotnet/desktop-wpf/xaml-services/xarray-markup-extension).)
+- Derives from (for more information about arrays in XAML, see [x:Array Markup Extension](/dotnet/desktop/xaml-services/xarray-markup-extension).)
- Implements (an interface defined by [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)]).
@@ -106,7 +106,7 @@ XAML as implemented in common language runtime (CLR) frameworks supports the abi
## See also
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [XAML in WPF](xaml-in-wpf.md)
- [Custom Dependency Properties](custom-dependency-properties.md)
- [Control Authoring Overview](../controls/control-authoring-overview.md)
- [Base Elements Overview](base-elements-overview.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/xaml-in-wpf.md b/dotnet-desktop-guide/framework/wpf/advanced/xaml-in-wpf.md
index fe0414a..6115147 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/xaml-in-wpf.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/xaml-in-wpf.md
@@ -14,7 +14,7 @@ ms.assetid: 5d858575-a83b-42df-ad3f-047ed2d6e3c8
## In This Section
-[XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+[XAML in WPF](xaml-in-wpf.md)
[XAML Syntax In Detail](xaml-syntax-in-detail.md)
[Code-Behind and XAML in WPF](code-behind-and-xaml-in-wpf.md)
[XAML and Custom Classes for WPF](xaml-and-custom-classes-for-wpf.md)
@@ -22,10 +22,10 @@ ms.assetid: 5d858575-a83b-42df-ad3f-047ed2d6e3c8
[XAML Namespaces and Namespace Mapping for WPF XAML](xaml-namespaces-and-namespace-mapping-for-wpf-xaml.md)
[WPF XAML Namescopes](wpf-xaml-namescopes.md)
[Inline Styles and Templates](inline-styles-and-templates.md)
-[White-space Processing in XAML](/dotnet/desktop-wpf/xaml-services/white-space-processing)
+[White-space Processing in XAML](/dotnet/desktop/xaml-services/white-space-processing)
[TypeConverters and XAML](typeconverters-and-xaml.md)
-[XML Character Entities and XAML](/dotnet/desktop-wpf/xaml-services/xml-character-entities)
-[XAML Namespace (x:) Language Features](/dotnet/desktop-wpf/xaml-services/namespace-language-features)
+[XML Character Entities and XAML](/dotnet/desktop/xaml-services/xml-character-entities)
+[XAML Namespace (x:) Language Features](/dotnet/desktop/xaml-services/namespace-language-features)
[WPF XAML Extensions](wpf-xaml-extensions.md)
[Markup Compatibility (mc:) Language Features](markup-compatibility-mc-language-features.md)
@@ -38,5 +38,5 @@ ms.assetid: 5d858575-a83b-42df-ad3f-047ed2d6e3c8
[Events](events-wpf.md)
[Input](input-wpf.md)
[Resources](resources-wpf.md)
-[Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview)
+[Styling and Templating](../controls/styles-templates-overview.md)
[Threading Model](threading-model.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/xaml-loading-and-dependency-properties.md b/dotnet-desktop-guide/framework/wpf/advanced/xaml-loading-and-dependency-properties.md
index d75ba50..4949d5c 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/xaml-loading-and-dependency-properties.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/xaml-loading-and-dependency-properties.md
@@ -15,7 +15,7 @@ The current [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclie
## Prerequisites
- This topic assumes that you understand dependency properties both as consumer and author and have read [Dependency Properties Overview](dependency-properties-overview.md) and [Custom Dependency Properties](custom-dependency-properties.md). You should also have read [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml) and [XAML Syntax In Detail](xaml-syntax-in-detail.md).
+ This topic assumes that you understand dependency properties both as consumer and author and have read [Dependency Properties Overview](dependency-properties-overview.md) and [Custom Dependency Properties](custom-dependency-properties.md). You should also have read [XAML in WPF](xaml-in-wpf.md) and [XAML Syntax In Detail](xaml-syntax-in-detail.md).
## The WPF XAML Loader Implementation, and Performance
@@ -37,7 +37,7 @@ The current [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclie
## See also
- [Dependency Properties Overview](dependency-properties-overview.md)
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [XAML in WPF](xaml-in-wpf.md)
- [Dependency Property Metadata](dependency-property-metadata.md)
- [Collection-Type Dependency Properties](collection-type-dependency-properties.md)
- [Dependency Property Security](dependency-property-security.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/xaml-namespaces-and-namespace-mapping-for-wpf-xaml.md b/dotnet-desktop-guide/framework/wpf/advanced/xaml-namespaces-and-namespace-mapping-for-wpf-xaml.md
index 2213f0e..1ce8db2 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/xaml-namespaces-and-namespace-mapping-for-wpf-xaml.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/xaml-namespaces-and-namespace-mapping-for-wpf-xaml.md
@@ -38,7 +38,7 @@ This topic further explains the presence and purpose of the two XAML namespace m
The relationship between these declarations is that the `x:` prefix mapping supports the intrinsics that are part of the XAML language definition, and [!INCLUDE[TLA2#tla_winclient](../../../includes/tla2sharptla-winclient-md.md)] is one implementation that uses XAML as a language and defines a vocabulary of its objects for XAML. Because the WPF vocabulary's usages will be far more common than the XAML intrinsics usages, the WPF vocabulary is mapped as the default.
- The `x:` prefix convention for mapping the XAML language intrinsics support is followed by project templates, sample code, and the documentation of language features within this SDK. The XAML namespace defines many commonly-used features that are necessary even for basic WPF applications. For instance, in order to join any code-behind to a XAML file through a partial class, you must name that class as the `x:Class` attribute in the root element of the relevant XAML file. Or, any element as defined in a XAML page that you wish to access as a keyed resource should have the `x:Key` attribute set on the element in question. For more information on these and other aspects of XAML see [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml) or [XAML Syntax In Detail](xaml-syntax-in-detail.md).
+ The `x:` prefix convention for mapping the XAML language intrinsics support is followed by project templates, sample code, and the documentation of language features within this SDK. The XAML namespace defines many commonly-used features that are necessary even for basic WPF applications. For instance, in order to join any code-behind to a XAML file through a partial class, you must name that class as the `x:Class` attribute in the root element of the relevant XAML file. Or, any element as defined in a XAML page that you wish to access as a keyed resource should have the `x:Key` attribute set on the element in question. For more information on these and other aspects of XAML see [XAML in WPF](xaml-in-wpf.md) or [XAML Syntax In Detail](xaml-syntax-in-detail.md).
@@ -145,4 +145,4 @@ End Namespace
## See also
- [Understanding XML Namespaces](/previous-versions/aa468565(v=msdn.10))
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
+- [XAML in WPF](xaml-in-wpf.md)
diff --git a/dotnet-desktop-guide/framework/wpf/advanced/xaml-syntax-in-detail.md b/dotnet-desktop-guide/framework/wpf/advanced/xaml-syntax-in-detail.md
index 655e821..820c3b5 100644
--- a/dotnet-desktop-guide/framework/wpf/advanced/xaml-syntax-in-detail.md
+++ b/dotnet-desktop-guide/framework/wpf/advanced/xaml-syntax-in-detail.md
@@ -33,7 +33,7 @@ helpviewer_keywords:
ms.assetid: 67cce290-ca26-4c41-a797-b68aabc45479
---
# XAML Syntax In Detail
-This topic defines the terms that are used to describe the elements of XAML syntax. These terms are used frequently throughout the remainder of this documentation, both for WPF documentation specifically and for the other frameworks that use XAML or the basic XAML concepts enabled by the XAML language support at the System.Xaml level. This topic expands on the basic terminology introduced in the topic [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml).
+This topic defines the terms that are used to describe the elements of XAML syntax. These terms are used frequently throughout the remainder of this documentation, both for WPF documentation specifically and for the other frameworks that use XAML or the basic XAML concepts enabled by the XAML language support at the System.Xaml level. This topic expands on the basic terminology introduced in the topic [XAML in WPF](xaml-in-wpf.md).
## The XAML Language Specification
@@ -82,7 +82,7 @@ This topic defines the terms that are used to describe the elements of XAML synt
Attribute syntax is the XAML markup syntax that sets a value for a property by declaring an attribute on an existing object element. The attribute name must match the CLR member name of the property of the class that backs the relevant object element. The attribute name is followed by an assignment operator (=). The attribute value must be a string enclosed within quotes.
> [!NOTE]
-> You can use alternating quotes to place a literal quotation mark within an attribute. For instance you can use single quotes as a means to declare a string that contains a double quote character within it. Whether you use single or double quotes, you should use a matching pair for opening and closing the attribute value string. There are also escape sequences or other techniques available for working around character restrictions imposed by any particular XAML syntax. See [XML Character Entities and XAML](/dotnet/desktop-wpf/xaml-services/xml-character-entities).
+> You can use alternating quotes to place a literal quotation mark within an attribute. For instance you can use single quotes as a means to declare a string that contains a double quote character within it. Whether you use single or double quotes, you should use a matching pair for opening and closing the attribute value string. There are also escape sequences or other techniques available for working around character restrictions imposed by any particular XAML syntax. See [XML Character Entities and XAML](/dotnet/desktop/xaml-services/xml-character-entities).
In order to be set through attribute syntax, a property must be public and must be writeable. The value of the property in the backing type system must be a value type, or must be a reference type that can be instantiated or referenced by a XAML processor when accessing the relevant backing type.
@@ -126,7 +126,7 @@ This topic defines the terms that are used to describe the elements of XAML synt
You can also name any event from any object that is accessible through the default namespace by using a *typeName*.*event* partially qualified name; this syntax supports attaching handlers for routed events where the handler is intended to handle events routing from child elements, but the parent element does not also have that event in its members table. This syntax resembles an attached event syntax, but the event here is not a true attached event. Instead, you are referencing an event with a qualified name. For more information, see [Routed Events Overview](routed-events-overview.md).
- For some scenarios, property names are sometimes provided as the value of an attribute, rather than the attribute name. That property name can also include qualifiers, such as the property specified in the form *ownerType*.*dependencyPropertyName*. This scenario is common when writing styles or templates in XAML. The processing rules for property names provided as an attribute value are different, and are governed by the type of the property being set or by the behaviors of particular WPF subsystems. For details, see [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview).
+ For some scenarios, property names are sometimes provided as the value of an attribute, rather than the attribute name. That property name can also include qualifiers, such as the property specified in the form *ownerType*.*dependencyPropertyName*. This scenario is common when writing styles or templates in XAML. The processing rules for property names provided as an attribute value are different, and are governed by the type of the property being set or by the behaviors of particular WPF subsystems. For details, see [Styling and Templating](../controls/styles-templates-overview.md).
Another usage for property names is when an attribute value describes a property-property relationship. This feature is used for data binding and for storyboard targets, and is enabled by the class and its type converter. For a more complete description of the lookup semantics, see [PropertyPath XAML Syntax](propertypath-xaml-syntax.md).
@@ -140,7 +140,7 @@ This topic defines the terms that are used to describe the elements of XAML synt
[!code-xaml[XAMLOvwSupport#ContextMenu](~/samples/snippets/csharp/VS_Snippets_Wpf/XAMLOvwSupport/CSharp/Page1.xaml#contextmenu)]
- The value within a property element can also be given as inner text, in cases where the property type being specified is a primitive value type, such as , or an enumeration where a name is specified. These two usages are somewhat uncommon, because each of these cases could also use a simpler attribute syntax. One scenario for filling a property element with a string is for properties that are not the XAML content property but still are used for representation of UI text, and particular white-space elements such as linefeeds are required to appear in that UI text. Attribute syntax cannot preserve linefeeds, but property element syntax can, so long as significant white-space preservation is active (for details, see [White space processing in XAML](/dotnet/desktop-wpf/xaml-services/white-space-processing)). Another scenario is so that [x:Uid Directive](/dotnet/desktop-wpf/xaml-services/xuid-directive) can be applied to the property element and thus mark the value within as a value that should be localized in the WPF output BAML or by other techniques.
+ The value within a property element can also be given as inner text, in cases where the property type being specified is a primitive value type, such as , or an enumeration where a name is specified. These two usages are somewhat uncommon, because each of these cases could also use a simpler attribute syntax. One scenario for filling a property element with a string is for properties that are not the XAML content property but still are used for representation of UI text, and particular white-space elements such as linefeeds are required to appear in that UI text. Attribute syntax cannot preserve linefeeds, but property element syntax can, so long as significant white-space preservation is active (for details, see [White space processing in XAML](/dotnet/desktop/xaml-services/white-space-processing)). Another scenario is so that [x:Uid Directive](/dotnet/desktop/xaml-services/xuid-directive) can be applied to the property element and thus mark the value within as a value that should be localized in the WPF output BAML or by other techniques.
A property element is not represented in the WPF logical tree. A property element is just a particular syntax for setting a property, and is not an element that has an instance or object backing it. (For details on the logical tree concept, see [Trees in WPF](trees-in-wpf.md).)
@@ -154,7 +154,7 @@ This topic defines the terms that are used to describe the elements of XAML synt
- Type implements .
-- Type derives from (for more information about arrays in XAML, see [x:Array Markup Extension](/dotnet/desktop-wpf/xaml-services/xarray-markup-extension).)
+- Type derives from (for more information about arrays in XAML, see [x:Array Markup Extension](/dotnet/desktop/xaml-services/xarray-markup-extension).)
If the type of a property is a collection, then the inferred collection type does not need to be specified in the markup as an object element. Instead, the elements that are intended to become the items in the collection are specified as one or more child elements of the property element. Each such item is evaluated to an object during loading and added to the collection by calling the `Add` method of the implied collection. For example, the property of takes the specialized collection type , which implements . It is not necessary to instantiate a object element in the markup. Instead, you specify one or more items as elements within the `Style.Triggers` property element, where (or a derived class) is the type expected as the item type for the strongly typed and implicit .
@@ -250,9 +250,9 @@ This topic defines the terms that are used to describe the elements of XAML synt
``
- Here, `StaticResource` identifies the class providing the markup extension implementation. The next string `MyStyle` is used as the input for the non-default constructor, where the parameter as taken from the extension string declares the requested . `MyStyle` is expected to be the [x:Key](/dotnet/desktop-wpf/xaml-services/xkey-directive) value of a defined as a resource. The [StaticResource Markup Extension](staticresource-markup-extension.md) usage requests that the resource be used to provide the property value through static resource lookup logic at load time.
+ Here, `StaticResource` identifies the class providing the markup extension implementation. The next string `MyStyle` is used as the input for the non-default constructor, where the parameter as taken from the extension string declares the requested . `MyStyle` is expected to be the [x:Key](/dotnet/desktop/xaml-services/xkey-directive) value of a defined as a resource. The [StaticResource Markup Extension](staticresource-markup-extension.md) usage requests that the resource be used to provide the property value through static resource lookup logic at load time.
- For more information about markup extensions, see [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md). For a reference of markup extensions and other XAML programming features enabled in the general .NET XAML implementation, see [XAML Namespace (x:) Language Features](/dotnet/desktop-wpf/xaml-services/namespace-language-features). For WPF-specific markup extensions, see [WPF XAML Extensions](wpf-xaml-extensions.md).
+ For more information about markup extensions, see [Markup Extensions and WPF XAML](markup-extensions-and-wpf-xaml.md). For a reference of markup extensions and other XAML programming features enabled in the general .NET XAML implementation, see [XAML Namespace (x:) Language Features](/dotnet/desktop/xaml-services/namespace-language-features). For WPF-specific markup extensions, see [WPF XAML Extensions](wpf-xaml-extensions.md).
## Attached Properties
@@ -311,8 +311,8 @@ This topic defines the terms that are used to describe the elements of XAML synt
## See also
-- [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml)
-- [XAML Namespace (x:) Language Features](/dotnet/desktop-wpf/xaml-services/namespace-language-features)
+- [XAML in WPF](xaml-in-wpf.md)
+- [XAML Namespace (x:) Language Features](/dotnet/desktop/xaml-services/namespace-language-features)
- [WPF XAML Extensions](wpf-xaml-extensions.md)
- [Dependency Properties Overview](dependency-properties-overview.md)
- [TypeConverters and XAML](typeconverters-and-xaml.md)
diff --git a/dotnet-desktop-guide/framework/wpf/app-development/deploying-a-wpf-application-wpf.md b/dotnet-desktop-guide/framework/wpf/app-development/deploying-a-wpf-application-wpf.md
index 7b0d1e5..17e87ea 100644
--- a/dotnet-desktop-guide/framework/wpf/app-development/deploying-a-wpf-application-wpf.md
+++ b/dotnet-desktop-guide/framework/wpf/app-development/deploying-a-wpf-application-wpf.md
@@ -94,7 +94,7 @@ After Windows Presentation Foundation (WPF) applications are built, they need to
Markup-only [!INCLUDE[TLA2#tla_xaml](../../../includes/tla2sharptla-xaml-md.md)] pages can be installed to the local file system by using either XCopy or Windows Installer. These pages can be viewed using Internet Explorer or Windows Explorer.
- For more information about XAML, see [XAML Overview (WPF)](/dotnet/desktop-wpf/fundamentals/xaml).
+ For more information about XAML, see [XAML in WPF](../advanced/xaml-in-wpf.md).
diff --git a/dotnet-desktop-guide/framework/wpf/app-development/navigation-overview.md b/dotnet-desktop-guide/framework/wpf/app-development/navigation-overview.md
index 9d31b7e..1fa2743 100644
--- a/dotnet-desktop-guide/framework/wpf/app-development/navigation-overview.md
+++ b/dotnet-desktop-guide/framework/wpf/app-development/navigation-overview.md
@@ -738,7 +738,7 @@ Like , navigating to HTML using with content that is bound to those objects (see [Data Binding Overview](/dotnet/desktop-wpf/data/data-binding-overview)). If you don't need the overhead of creating an entire page just to display the objects, you can navigate directly to them instead.
+If you have data that is stored as custom objects, one way to display that data is to create a with content that is bound to those objects (see [Data Binding Overview](../data/data-binding-overview.md)). If you don't need the overhead of creating an entire page just to display the objects, you can navigate directly to them instead.
Consider the `Person` class that is implemented in the following code.
diff --git a/dotnet-desktop-guide/framework/wpf/app-development/pack-uris-in-wpf.md b/dotnet-desktop-guide/framework/wpf/app-development/pack-uris-in-wpf.md
index c341a65..7f63e15 100644
--- a/dotnet-desktop-guide/framework/wpf/app-development/pack-uris-in-wpf.md
+++ b/dotnet-desktop-guide/framework/wpf/app-development/pack-uris-in-wpf.md
@@ -452,7 +452,7 @@ Resource dictionaries () can be used to
[!code-xaml[ResourceDictionarySnippets#ResourceDictionaryPackURI](~/samples/snippets/csharp/VS_Snippets_Wpf/ResourceDictionarySnippets/CS/App.xaml#resourcedictionarypackuri)]
-For an overview of themes in WPF, see [Styling and Templating](/dotnet/desktop-wpf/fundamentals/styles-templates-overview).
+For an overview of themes in WPF, see [Styling and Templating](../controls/styles-templates-overview.md).
## See also
diff --git a/dotnet-desktop-guide/framework/wpf/controls/button-styles-and-templates.md b/dotnet-desktop-guide/framework/wpf/controls/button-styles-and-templates.md
index d933eba..9190e0d 100644
--- a/dotnet-desktop-guide/framework/wpf/controls/button-styles-and-templates.md
+++ b/dotnet-desktop-guide/framework/wpf/controls/button-styles-and-templates.md
@@ -12,7 +12,7 @@ helpviewer_keywords:
ms.assetid: e223c759-f8c4-4717-acfb-b1e40bdf5f3b
---
# Button Styles and Templates
-This topic describes the styles and templates for the control. You can modify the default to give the control a unique appearance. For more information, see [Create a template for a control](/dotnet/desktop-wpf/themes/how-to-create-apply-template).
+This topic describes the styles and templates for the control. You can modify the default to give the control a unique appearance. For more information, see [Create a template for a control](how-to-create-apply-template.md).
## Button Parts
The