- Application development
- Application Management
- Overview (talks about Application class)
- Application resource/content/data files
- Pack URIs
- (Howto: ) Add splash screen (Don't understand why this is here. I do now, it's an app setting)
- (Howto: ) user app-scope res dictionary
- (Howto: ) Persist/restore app-scope res
- Windows
- WPF Window overview (window physical structure, lifetime, ownership, etc)
- Dialog boxes
- How to topics
- Automatically size window to fit contents (too small; delete)
- Get all windows in an app (too small; delete)
- Get/set main app window
- Open a dialog box (too small; delete or roll)
- Open a message box (too small; delete or roll)
- Open a window (too small; delete or roll)
- Return dialog box result
- Navigation overview
- Overview (Talks about navigation concepts, classes involved, 40 minutes to read, break it up)
- Structured nav overview
- Navigation topologies overview (I feel like this should be covered in overview)
- How to topics
- Call a page function (too small; important concept though)
- Navigate to a page (too small; important concept though)
- Refresh a page (too small; important concept though)
- Stop a page from loading (too small; important concept though)
- Navigate back (too small; important concept though)
- Return from a page function (could be merged into call a page function)
- Get return value from page function (could be merged into call a page function)
- Navigate forward/back through history (Duplicates what Navigate back has and adds more)
- Determine if page is browser hosted (not supported in WPF Core)
- Use mailto: to send mail (delete)
- Set the title of a window from page (too small; roll into a new "configure window from page")
- Set the width of a window from page (too small; roll into a new "configure window from page")
- Set the height of a window from page (too small; roll into a new "configure window from page")
- WPF Add-ins Overview
- Overview (out of date, lots of framework only concepts, update with latest addin stuff)
- How to topics
- Create an add-in that returns a UI (these two are way too similar)
- Create an add-in that is a UI (these two are way too similar)
- Hosting (DELETE xbap not supported)
- ...
- Build and Deploy
- Building a WPF app (overview on the build process of markup compile, manifest generation, etc)
- Deploying a WPF application
- How to topics
- Configure IIS 5/6 to deploy WPF app (I think this is xbap related)
- Configure VS to debug XAML browser app (delete)
- Detect Framework 3.0 (delete)
- Detect Framework 3.5 (delete)
- Detect firefox WPF plugin (delete)
- Advanced
- WPF Architecture (keep)
- XAML in WPF ... (keep)
- Base element classes
- Base elements overview (keep)
- Freezable object overview (keep)
- Alignment, margins, padding overview (this doesn't seem advanced; keep but move?)
- How to articles
- Make UIElement transparent/semi-transparent (high; keep;)
- Animate the size of a frameworkelement (low; delete;)
- Determine whether a freezable is frozen (none; delete;)
- Handle loaded everything (high; keep;)
- Set margins of control (none; delete; should be in Controls;)
- Make freezable readonly (none; delete;)
- Obtain writable copy of readonly freezable (none; delete;)
- Flip a UIElement horizontal or vertical (low; delete;)
- Use ThicknessConverter object (none; delete;)
- Handle ContextMenuOpening event (low; delete;)
- Element tree and serialization
- Trees in WPF (keep;)
- Serialization limitations (keep;)
- Initialization for object elements not in tree (maybe move this into Trees in WPF? unsure)
- How to articles
- Find an element by names (high; keep; high bounce rate)
- Override logical tree (none; delete)
- WPF Property system (all important; keep)
...
- How to articles
- Implement a dependency property (high; keep;)
- Add an owner types (none; delete;)
- Register an attached property (low; keep; important)
- Override metadata (low; keep; important)
- Events
... (keep; important)
- How to articles
- Add an event handler using code (high; simple; keep)
- Handle a routed event (low; demonstrated in conceptual article; delete)
- Create a custom routed event (high; keep)
- Find source element in event (low; delete)
- Add class handler for routed event (none; delete)
- Input
- Input overview (keep;)
- Commanding overview (keep;)
- Focus overview (keep;)
- Styling for focus controls and focusvisualstyle (keep;)
- Digital Ink
- 18 articles keep them all needs review as to what still works with win10!!
- How to articles
- Enable a command (low; move into command overview)
- Change the cursor type (high; keep)
- Change the color of an elem using focus events (low; delete)
- Apply VisualFocusStyle to control (low; delete)
- Detect when the enter key is pressed (high; keep)
- Create a rollover effect using events (none; delete)
- Make an object follow mouse cursor (low; delete)
- Create a RoutedCommand (low; delete)
- Implement ICommandSource (low; not trivial, suggest to keep)
- Hook up a cmd to cont. with no cmd support (low; move into command overview)
- Hook up a cmd to cont. with cmd support (low; move into command overview)
- Drag and Drop
- Drag and drop overview (keep;)
- Data and data objects (keep; rename?)
- Walkthrough: Enable drag n drop on user control ()
- How to articles (all of these howto are low views. regarding the DO related items, maybe combine into a single How to use drag-and-drop data objects article?)
- Open a file dropped on richtextbox (low; delete)
- Create a data object (low; delete)
- Determine if data format is present in DO (low; delete)
- List the data formats in DO (low; delete)
- Retrieve data in particular data format (low; delete)
- Store multiple data formats in DO (low; delete)
- Resources
- XAML Resources (keep; redirects to wpf core topic)
- Resources and code (keep; maybe merge into above article?)
- Merged resource dictionaries (keep; I feel like this should be in a bigger overview)
- How to topics
- Define and reference a resource (low; keep; important;)
- Use application resources (low; keep; important;)
- Use SystemFonts (low; delete;)
- Use System Font Keys (low; delete;)
- Use SystemParameters (low; delete;)
- Use System Parameters Keys (low; delete;)
- Documents
- ... (Everything here is important. A variety of how tos can be deleted)
- Annotations ...
- Flow Content ...
- Typography ... (how to that must be ported is "Use Special Characters in XAML", high page views)
- Printing and Print System Management ... (Lots of low ratings. I suspect it's ppl with printer problems. Printers suck.)
- How to articles
- Invoke a print dialog (keep; medium)
- Clone a printer (delete; this is generic .NET content, should be covered in standard)
- Diagnose problematic print job (delete; this is generic .NET content, should be covered in standard)
- Discover whether a print job can print... (delete; this is generic .NET content, should be covered in standard)
- Enumerate print queues (delete; this is generic .NET content, should be covered in standard)
- Get print system properties without reflection (delete; this is generic .NET content, should be covered in standard)
- Programmatically print XPS files (keep; medium)
- Remotely survey the status of printers (delete; this is generic .NET content, should be covered in standard)
- Validate and merge print tickets (delete; this is generic .NET content, should be covered in standard)
- Globalization and localization (I think everything here should be rewritten and possibly merged into fewer files)
- WPF Globalization and Localization Overview (good; keep)
- Globalization for WPF (good; keep)
- Use Automatic Layout Overview (good; keep; merge; remove examples)
- Localization Attributes and Comments (good; keep)
- Bidirectional Features in WPF Overview (good; keep)
- How to articles
- Localize an app (keep; needs review; baml)
- Use automatic layout to create a button (delete; dupe of conceptual; not helpful)
- Use grid for automatic layout (delete; dupe of conceptual; not helpful)
- Use a ResourceDictionary to manage resources (delete or rewrite; doesn't really say how to use the dictionary across different languages)
- Use resources in localizable apps (rewrite)
- Layout (keep; move elsewhere?)
- Migration and Interoperability
- Migrate types from 3.x to 4.x (delete;)
- WPF and Windows Forms Interoperation
- WPF and Windows Forms Interoperation (keep; overview;)
- Windows Forms and WPF Interop Input Arch (keep;rename)
- Layout Considerations for the WindowsFormsHost (keep;)
- WinForms Controls and Equivalent WPF Controls (keep; reference table; merge?)
- WinForms and WPF Property Mapping (keep; reference table; merge?)
- Troubleshooting Hybrid Applications (keep;)
- 11 walkthrough articles (rewrite; evaluate as needed)
- How to: Enable Visual Styles in a Hybrid app (low; delete;)
- WPF and Win32 Interoperation
- WPF and Win32 Interoperation (keep; overview;)
- Technology Regions Overview (keep; rename?)
- Sharing Message Loops Between Win32 and WPF (keep;)
- Hosting Win32 Content in WPF (unsure; written like a walkthrough;)
- Walkthrough: Host a Win32 Control in WPF (keep; important)
- Walkthrough: Hosting WPF Content in Win32 (delete? relevant?)
- Walkthrough: Host a WPF Clock in Win32 (delete? relevant?)
- WPF and Direct3D9 Interoperation
- WPF and Direct3D9 Interoperation (keep; overview)
- Perf Considerations for D3D9 and WPF Interop (keep;)
- Walkthrough: Creating D3D9 Content for WPF (delete? relevant?)
- Walkthrough: Hosting Direct3D9 Content in WPF (delete? relevant?)
- Performance
- Graphics Rendering Tiers
- Optimizing WPF Application Performance
-
- Walkthrough: Caching App Data in a WPF app
- Threading model (keep; major updates needed)
- WPF Unmanaged API Reference (keep; legal?)
...
- !Controls
- Controls by category
- WPF Content model (overview)
- Control library (reference)
...
Each control is an article which may or may not have the following: Picture of the control in various states, overview details, how to articles
- Styles and templates
- Styles and templating (overview; goes to desktop-guide article)
- Customizing an existing control with controltemplate (goes to desktop-guide article)
- How to topics
- How to find ControlTemplate-generated elements (unsure, small, wrapper for controlInstance.Template.FindName)
- Control customization
- Control authoring overview
- Creating a Control That Has a Customizable Appearance (tutorial)
- Guidelines for designing stylable controls
- Adorners
- Overview
- How to topics
- Implement an adorner (delete; part of overview)
- Bind an adorner to an element (delete; part of overview)
- Adorn the children of a panel (delete; part of overview)
- Remove an adorner from an element (small; roll into single?)
- Remove all adorners from an element (small; roll into single?)
- Control styles and templates (reference)
...
Each control has an article that has a list of styles and template parts detailed as well as default xaml
- !UI automation of WPF custom control
- !Walkthrough: Create a custom animated button
- !Overview
- !Create a button using Blend
- !Create a button using XAML
- !Data binding
- Overview (goes to desktop-guide article)
- Binding sources overview
- Data templating
- Binding declarations
- !How to articles
- Create a simple binding -\ (low)
- Specify the binding source |=> (high) Merge these three into a single article
- Make data available for binding in XAML -/ (high)
- Control when the TextBox text updates the source (high; good; new title)
- Specify the direction of the binding (low; not a how to; move content into "Binding declarations")
- Bind to a collection and display information based on selection (good; I don't understand how this works with contentcontrol?? investigate)
- Bind to an enumeration (low; good; small; demos ObjectDataProvider to get enum names; demos control-control binding)
- Bind the properties of two controls (low; good; small)
- Implement binding validation (high; good; demos Validation.ErrorTemplate/Binding.ValidationRules) / Maybe merge these two into conceptual
- Implement validation logic on custom objects (low; good; demos style.trigger > setter with Validation.Errors) /
- Get the binding object from a bound target property (low; oneline; demos BindingOperations.GetBinding)
- Implement a CompositeCollection (good; demos ObservableCollection/XmlDataProvider; demo CompositeCollection)
- Convert bound data (good; demos converter)
- Create a binding in code (high; good)
- Get the default view of a data collection =\
- Navigate through the objects in a data CollectionView |
- Filter data in a view | (low; merge with single how to collectionview)
- Sort data in a view |
- Sort and group data using a view in XAML =/
- Use the master-detail pattern with hierarchical data (low; delete)
- Use the master-detail pattern with hierarchical XML data (low; delete)
- Produce a value based on a list of bound Items (low; delete; demos converters to merge two properties into a single string)
- Implement property change notification (high; keep)
- Create and bind to an ObservableCollection (high; keep)
- Implement PriorityBinding (low; delete)
- Bind to XML data using an XMLDataProvider and XPath queries (low; demos xpath binding; keep, improve/move?)
- Bind to query results (low; move into Bind to XML but change title of article to be less XML/XDoc specific)
- Bind to the results of a LINQ Query (low; delete)
- Use XML namespaces in data binding (low; move into Bind to XML)
- Bind to an ADO.NET data source (low; delete)
- Bind to a method (low; delete or merge into bind to enum?; demos ObjectDataProvider)
- Set up notification of binding updates (low; delete)
- Clear bindings (low; merge into Create a binding in code)
- !Find DataTemplate-generated elements (low; merge into datatemplating overview)
- Data binding with LINQ to XML
(
This whole section is important in the fact that the LINQ to XML framework exposes some dynamic
properties that enable databinding in WPF and other frameworks. Normal LINQ to XML access is demonstrates
through various methods, unsuitable for databinding. This scenario is important
Question: Are these dynamic properties added by the default LINQ to XML libs? Or does the WPF framework add them?
)
- Overview
- LINQ to XML dynamic properties
- Overview
- XAttribute dynamic properties
- Value
- XElement dynamic properties
- Attribute
- Element
- Elements
- Descendants
- Value
- Xml
- Sample
- LINQ to XML data binding sample
- L2DBForm.xaml source code
- L2DBForm.xaml.cs source code
- Graphics and multimedia
- [root article] (keep; covers basic overview of capabilities )
- WPF Graphics rendering overview (keep; outlines the rendering pipeline and rendering object model in WPF)
- Graphics
- Bitmap Effects (cull toc structure; keep overview article;)
- Brushes ... (keep everything)
- Drawings ... (keep everything)
- Geometries ... (keep everything; few bugs where [xaml] syntax appears?)
- Images ... (keep everything; many how-tos can be merged into singles)
- Shapes ... (keep everything)
- Transforms ... (keep everything)
- Graphics Rendering Registry Settings (unsure; still useful? maybe move to root of this area instead of Graphics area)
- 3D Graphics Overview (keep everything)
- Animation Overview (keep everything)
- Multimedia Overview (keep everything; some how-to useless)
- Visual Layer Programming (keep everything)
- Security ... (product group should evaluate how relevent this is in .NET 5)
- WPF Samples (keep; change to card layout; link to some specific samples, samples repo, samples browser)
- Class library (link directly to root API area. This is just a namespace link farm)