{"id":3548,"date":"2026-03-16T14:12:20","date_gmt":"2026-03-16T14:12:20","guid":{"rendered":"https:\/\/xceed.com\/?p=3548"},"modified":"2026-03-16T14:15:05","modified_gmt":"2026-03-16T14:15:05","slug":"103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026","status":"publish","type":"post","link":"https:\/\/xceed.com\/fr\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/","title":{"rendered":"103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3548\" class=\"elementor elementor-3548\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6f046a0 e-flex e-con-boxed e-con e-parent\" data-id=\"6f046a0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4df4414 elementor-widget elementor-widget-text-editor\" data-id=\"4df4414\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<style>\n  .cta-box {\n    background: linear-gradient(145deg, #ff8441 0%, #ff772e 40%, #ff7429 100%);\n    color: #fff;\n    border-radius: 12px;\n    padding: 1.5rem 1.75rem;\n    margin: 2rem 0;\n    box-sizing: border-box;\n    box-shadow:\n      0 8px 24px rgba(0, 0, 0, 0.08),\n      0 4px 10px rgba(168, 63, 8, 0.15),\n      inset 0 1px 0 rgba(255, 255, 255, 0.12);\n  }\n\n  .cta-box h3 {\n    margin: 0 0 0.5rem 0;\n    font-size: 1.25rem;\n    font-weight: 700;\n    color: #fff;\n  }\n\n  .cta-box p {\n    margin: 0 0 1rem 0;\n    font-size: 1rem;\n    line-height: 1.5;\n    color: #fff;\n    opacity: 0.98;\n  }\n\n  .cta-box a.cta-link {\n    display: inline-block;\n    background: #fff;\n    color: #ff671b;\n    text-decoration: none;\n    font-weight: 600;\n    padding: 0.5rem 1rem;\n    border-radius: 8px;\n    margin-right: 0.75rem;\n    margin-top: 0.25rem;\n    font-size: 0.9375rem;\n  }\n\n  .cta-box a.cta-link:hover {\n    background: #f5f5f5;\n  }\n\n  pre[class*=\"language-\"] {\n    margin: 2rem 0 !important;\n    padding: 1rem 1.25rem !important;\n    overflow-x: auto !important;\n    font-size: 0.9rem !important;\n    line-height: 1.5 !important;\n    border-radius: 10px !important;\n    background: #1e1e1e !important;\n    border: 1px solid #333 !important;\n    color: #d4d4d4 !important;\n  }\n\n  pre[class*=\"language-\"] code {\n    background: none !important;\n    padding: 0 !important;\n    color: #d4d4d4 !important;\n    font-family: Consolas, Monaco, 'Courier New', monospace !important;\n  }\n\n  pre[class*=\"language-\"] code span {\n    color: inherit;\n  }\n\n  pre[class*=\"language-\"] .token.tag { color: #569cd6 !important; }\n  pre[class*=\"language-\"] .token.attr-name { color: #9cdcfe !important; }\n  pre[class*=\"language-\"] .token.attr-value { color: #ce9178 !important; }\n  pre[class*=\"language-\"] .token.punctuation { color: #808080 !important; }\n  pre[class*=\"language-\"] .token.namespace { color: #4ec9b0 !important; }\n  pre[class*=\"language-\"] .token.keyword { color: #569cd6 !important; }\n  pre[class*=\"language-\"] .token.class-name { color: #4ec9b0 !important; }\n  pre[class*=\"language-\"] .token.string { color: #ce9178 !important; }\n  pre[class*=\"language-\"] .token.comment { color: #6a9955 !important; }\n  pre[class*=\"language-\"] .token.property { color: #9cdcfe !important; }\n  pre[class*=\"language-\"] .token.operator { color: #d4d4d4 !important; }\n<\/style>\n\n<article>\n<header>\n<h1>103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026<\/h1>\n<\/header>\n\n<section>\n<p>You&#8217;re building a WPF application in 2026. You need a date-time picker. So you go looking in System.Windows.Controls and&#8230; it&#8217;s not there. No DateTimePicker, no NumericUpDown, no ColorPicker, no PropertyGrid. Not even watermark text boxes, masked input, or a docking framework.<\/p>\n\n<p>These aren&#8217;t exotic requests \u2014 in fact, every business application needs at least half of them. Yet WPF shipped without them in 2006, and twenty years later, Microsoft still hasn&#8217;t added them. The built-in <strong>WPF UI controls<\/strong> library is the same size today as it was in .NET Framework 3.0.<\/p>\n\n<p>So where do these controls come from? For over 15 million NuGet downloads&#8217; worth of developers, the answer has been the same: Xceed.<\/p>\n<\/section>\n\n<section>\n<h2>What Microsoft left out \u2014 and never came back for<\/h2>\n\n<p>Here&#8217;s the thing about WPF&#8217;s control library. Microsoft certainly built the framework itself beautifully \u2014 the layout engine, data binding, XAML, styling, templates. However, they shipped a small set of controls and never expanded it. As a result, no one at Microsoft has added a new control to WPF in sixteen years.<\/p>\n\n<p>Compare that to what a typical line-of-business application actually needs:<\/p>\n\n<ul>\n<li>A date-time picker (not just a DatePicker \u2014 one that handles time too)<\/li>\n<li>Numeric up\/down spinners for quantities, prices, settings<\/li>\n<li>Masked input for phone numbers, social security numbers, ZIP codes<\/li>\n<li>A color picker for any design or configuration UI<\/li>\n<li>A property grid for settings panels (like Visual Studio&#8217;s Properties window)<\/li>\n<li>A busy indicator to show loading states<\/li>\n<li>A docking framework for multi-panel layouts<\/li>\n<\/ul>\n\n<p>Yet none of these exist in the WPF framework. Consequently, you either build them yourself \u2014 reinventing wheels that have been solved for decades \u2014 or you find a <strong>toolkit for WPF<\/strong> that already has them.<\/p>\n<\/section>\n\n<section>\n<h2>Xceed Toolkit Plus: 103 controls, zero dependencies<\/h2>\n\n<p><a href=\"https:\/\/xceed.com\/products\/wpf\/toolkit-plus-for-wpf\/\">Xceed Toolkit Plus for WPF<\/a> provides 103 controls, panels, and themes \u2014 all in a single NuGet package with no external dependencies. Install it and start using controls immediately:<\/p>\n\n<pre class=\"language-markup\" tabindex=\"0\"><code class=\"language-markup\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>PackageReference<\/span> <span class=\"token attr-name\">Include<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>Xceed.Products.Wpf.Toolkit.Full<span class=\"token punctuation\">\"<\/span><\/span>\n                  <span class=\"token attr-name\">Version<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>5.1.26166.7861<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/code><\/pre>\n\n<p>The toolkit has been around since the early days of WPF. Xceed \u2014 the company that shipped the <a href=\"https:\/\/xceed.com\/products\/wpf\/datagrid-for-wpf\/\">first commercial WPF control<\/a> back in 2007 \u2014 has been maintaining and expanding it ever since. In fact, the community edition alone has crossed 15.8 million NuGet downloads. That&#8217;s not a niche library \u2014 rather, that&#8217;s infrastructure.<\/p>\n\n<p>And it runs on .NET 10 today. Here&#8217;s the project file for our demo:<\/p>\n\n<pre class=\"language-markup\" tabindex=\"0\"><code class=\"language-markup\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>Project<\/span> <span class=\"token attr-name\">Sdk<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>Microsoft.NET.Sdk<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>PropertyGroup<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>OutputType<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>WinExe<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>OutputType<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>TargetFramework<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>net10.0-windows<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>TargetFramework<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>Nullable<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>enable<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>Nullable<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>ImplicitUsings<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>enable<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>ImplicitUsings<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>UseWPF<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>true<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>UseWPF<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>PropertyGroup<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>ItemGroup<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>PackageReference<\/span> <span class=\"token attr-name\">Include<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>Xceed.Products.Wpf.Toolkit.Full<span class=\"token punctuation\">\"<\/span><\/span>\n                      <span class=\"token attr-name\">Version<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>5.1.26166.7861<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>ItemGroup<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>Project<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/code><\/pre>\n\n<p>One namespace, one package, all 103 controls.<\/p>\n<\/section>\n\n<section>\n<h2>The WPF UI controls you&#8217;ll use on day one<\/h2>\n\n<p>Let me walk through the ones that show up in almost every WPF project. These aren&#8217;t edge cases \u2014 they&#8217;re gaps in the framework that you&#8217;ll hit within your first week.<\/p>\n\n<h3>Input controls WPF forgot<\/h3>\n\n<p>WPF gives you a TextBox. That&#8217;s it. No watermark, no masking, no numeric validation. Xceed fills every one of those gaps:<\/p>\n\n<pre class=\"language-markup\" tabindex=\"0\"><code class=\"language-markup\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>WatermarkTextBox<\/span> <span class=\"token attr-name\">Watermark<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>Search employees...<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span>\n\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>MaskedTextBox<\/span> <span class=\"token attr-name\">Mask<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>(000) 000-0000<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span>\n\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>IntegerUpDown<\/span> <span class=\"token attr-name\">Value<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>42<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">Minimum<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>0<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">Maximum<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>100<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span>\n\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>DecimalUpDown<\/span> <span class=\"token attr-name\">Value<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>19.99<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">FormatString<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>C2<span class=\"token punctuation\">\"<\/span><\/span>\n                    <span class=\"token attr-name\">Increment<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>0.50<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">Minimum<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>0<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span>\n\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>CalculatorUpDown<\/span> <span class=\"token attr-name\">Value<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>100<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/code><\/pre>\n\n\n<p>For example, WatermarkTextBox shows placeholder text that disappears on focus \u2014 something HTML has had since 2012, but WPF still doesn&#8217;t support natively. Similarly, MaskedTextBox enforces input patterns. Meanwhile, the numeric up\/downs handle validation, formatting, min\/max bounds, and increment steps out of the box. Specifically, you get ByteUpDown, ShortUpDown, IntegerUpDown, LongUpDown, SingleUpDown, DoubleUpDown, and DecimalUpDown \u2014 one for every numeric type in .NET.<\/p>\n\n<h3>DateTimePicker \u2014 yes, the one WPF doesn&#8217;t have<\/h3>\n\n<p>WPF includes a DatePicker that picks dates. However, if you need time \u2014 and most business apps do \u2014 you&#8217;re on your own. Instead, Xceed provides a proper DateTimePicker and a standalone TimePicker:<\/p>\n\n<pre class=\"language-markup\" tabindex=\"0\"><code class=\"language-markup\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>DateTimePicker<\/span> <span class=\"token attr-name\">Format<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>Custom<span class=\"token punctuation\">\"<\/span><\/span>\n                     <span class=\"token attr-name\">FormatString<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>yyyy-MM-dd HH:mm<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span>\n\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>TimePicker<\/span> <span class=\"token attr-name\">Format<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>ShortTime<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span>\n\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>TimeSpanUpDown<\/span> <span class=\"token attr-name\">Value<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>08:30:00<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/code><\/pre>\n\n\n<p>Format strings, validation, keyboard navigation \u2014 all built in. Additionally, you get a TimeSpanUpDown for duration fields. These are controls that WinForms had twenty years ago. WPF never caught up, but this <strong>WPF toolkit<\/strong> did.<\/p>\n\n<h3>ColorPicker and ColorCanvas<\/h3>\n\n<p>Building a design tool, a theming panel, or any UI where users choose colors? WPF has no color picker. Xceed offers two:<\/p>\n\n<pre class=\"language-markup\" tabindex=\"0\"><code class=\"language-markup\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>ColorPicker<\/span> <span class=\"token attr-name\">SelectedColor<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>CornflowerBlue<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span>\n\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>ColorCanvas<\/span> <span class=\"token attr-name\">SelectedColor<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>OrangeRed<span class=\"token punctuation\">\"<\/span><\/span>\n                  <span class=\"token attr-name\">Width<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>300<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/code><\/pre>\n\n\n<p>ColorPicker gives you a dropdown with standard colors, recent colors, and an advanced tab. On the other hand, ColorCanvas is a full HSV canvas for precise selection. Both bind to System.Windows.Media.Color, so no conversion is needed.<\/p>\n\n<h3>CheckComboBox \u2014 multi-select in a dropdown<\/h3>\n\n<p>WPF&#8217;s ComboBox selects one item. If you need multi-select in a dropdown \u2014 and you will, for filters, permissions, tag selection \u2014 you need CheckComboBox:<\/p>\n\n<pre class=\"language-markup\" tabindex=\"0\"><code class=\"language-markup\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>CheckComboBox<\/span> <span class=\"token attr-name\">ItemsSource<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>{Binding Departments}<span class=\"token punctuation\">\"<\/span><\/span>\n                    <span class=\"token attr-name\">Delimiter<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>, <span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/code><\/pre>\n\n\n<p>Select multiple items, then see them listed in the collapsed view with your chosen delimiter. It&#8217;s also available as CheckListBox for a list-style layout.<\/p>\n\n<h3>PropertyGrid \u2014 the settings panel you&#8217;d spend weeks building<\/h3>\n\n<p>Every application has a settings screen, yet most developers end up hand-coding form layouts for every new settings class. Xceed&#8217;s PropertyGrid generates a categorized, searchable editor from any .NET object \u2014 just like the Properties window in Visual Studio:<\/p>\n\n<pre class=\"language-markup\" tabindex=\"0\"><code class=\"language-markup\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>PropertyGrid<\/span> <span class=\"token attr-name\">SelectedObject<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>{Binding AppSettings}<span class=\"token punctuation\">\"<\/span><\/span>\n                   <span class=\"token attr-name\">ShowSearchBox<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>True<span class=\"token punctuation\">\"<\/span><\/span>\n                   <span class=\"token attr-name\">ShowSortOptions<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>True<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/code><\/pre>\n\n<pre class=\"language-csharp\" tabindex=\"0\"><code class=\"language-csharp\"><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">AppSettings<\/span>\n<span class=\"token punctuation\">{<\/span>\n    <span class=\"token punctuation\">[<\/span><span class=\"token class-name\">Category<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"General\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span>\n    <span class=\"token punctuation\">[<\/span><span class=\"token class-name\">DisplayName<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Application Name\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span>\n    <span class=\"token punctuation\">[<\/span><span class=\"token class-name\">Description<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"The name displayed in the title bar.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">string<\/span> <span class=\"token property\">AppName<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token keyword\">get<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">set<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token operator\">=<\/span> <span class=\"token string\">\"My WPF App\"<\/span><span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token punctuation\">[<\/span><span class=\"token class-name\">Category<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Appearance\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span>\n    <span class=\"token punctuation\">[<\/span><span class=\"token class-name\">DisplayName<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Dark Mode\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">bool<\/span> <span class=\"token property\">DarkMode<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token keyword\">get<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">set<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token operator\">=<\/span> <span class=\"token keyword\">false<\/span><span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token punctuation\">[<\/span><span class=\"token class-name\">Category<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Appearance\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span>\n    <span class=\"token punctuation\">[<\/span><span class=\"token class-name\">DisplayName<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Font Size\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token property\">FontSize<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token keyword\">get<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">set<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token operator\">=<\/span> <span class=\"token number\">14<\/span><span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token punctuation\">[<\/span><span class=\"token class-name\">Category<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Performance\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span>\n    <span class=\"token punctuation\">[<\/span><span class=\"token class-name\">DisplayName<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Cache Size (MB)\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token property\">CacheSizeMB<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token keyword\">get<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">set<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token operator\">=<\/span> <span class=\"token number\">256<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span><\/code><\/pre>\n\n\n<p>Just point it at any object. It automatically reads [Category], [DisplayName], and [Description] attributes. As a result, properties are grouped, sorted, searchable, and editable with the right editor for each type \u2014 checkboxes for booleans, numeric spinners for numbers, color pickers for colors. Building this from scratch takes weeks, whereas using Xceed takes one line of XAML.<\/p>\n\n<h3>BusyIndicator \u2014 loading states done right<\/h3>\n\n<p>Every app has loading states, but WPF doesn&#8217;t include a busy indicator. Fortunately, Xceed&#8217;s wraps any content with an overlay:<\/p>\n\n<pre class=\"language-markup\" tabindex=\"0\"><code class=\"language-markup\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token namespace\">xctk:<\/span>BusyIndicator<\/span> <span class=\"token attr-name\">IsBusy<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>{Binding IsLoading}<span class=\"token punctuation\">\"<\/span><\/span>\n                    <span class=\"token attr-name\">BusyContent<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>Loading data...<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>DataGrid<\/span> <span class=\"token attr-name\">ItemsSource<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>{Binding Records}<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span><span class=\"token namespace\">xctk:<\/span>BusyIndicator<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/code><\/pre>\n\n\n<p>Bind IsBusy to a boolean in your ViewModel. The overlay appears with an animation, disables the wrapped content, and shows your message. No manual visibility toggling, no z-index battles.<\/p>\n\n<h3>AvalonDock \u2014 the docking framework<\/h3>\n\n<p>This one deserves special mention because AvalonDock is a full Visual Studio-style docking framework: floating panels, tabbed documents, auto-hide sidebars, save\/restore layouts. What&#8217;s more, it&#8217;s included in the community edition for free, while the Plus edition adds theme integration.<\/p>\n\n<p>Normally, building a docking layout from scratch is a multi-month engineering effort. Instead, AvalonDock gives you one out of the box \u2014 and it&#8217;s the same framework used by countless WPF applications worldwide.<\/p>\n<\/section>\n\n<section>\n<h2>Beyond individual controls: 21 Material Design components<\/h2>\n\n<p>The Plus edition includes 21 Material Design <strong>WPF UI controls<\/strong> for applications that need a modern, web-inspired look:<\/p>\n\n<ul>\n<li>MaterialButton, MaterialCheckBox, MaterialRadioButton<\/li>\n<li>MaterialTextField, MaterialComboBox<\/li>\n<li>MaterialSlider, MaterialSwitch<\/li>\n<li>MaterialProgressBar, MaterialProgressBarCircular<\/li>\n<li>MaterialTabControl, MaterialListBox<\/li>\n<li>MaterialHamburgerMenu, MaterialToast<\/li>\n<li>And more<\/li>\n<\/ul>\n\n<p>Importantly, these aren&#8217;t just styled versions of built-in controls. They also include ripple effects, floating labels, and animation patterns that follow Google&#8217;s Material Design specification \u2014 things that would otherwise take significant effort to implement manually in WPF.<\/p>\n<\/section>\n\n<section>\n<h2>9 themes for every control<\/h2>\n\n<p>Theming in WPF is powerful but manual \u2014 you have to template every control yourself. Xceed Toolkit Plus ships 9 complete themes:<\/p>\n\n<table>\n<thead>\n<tr>\n<th>Theme<\/th>\n<th>Variants<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Fluent Design<\/td>\n<td>Light, Dark<\/td>\n<\/tr>\n<tr>\n<td>Material Design<\/td>\n<td>Light, Dark<\/td>\n<\/tr>\n<tr>\n<td>Windows 10<\/td>\n<td>Standard<\/td>\n<\/tr>\n<tr>\n<td>Metro<\/td>\n<td>Light, Dark (with accent colors)<\/td>\n<\/tr>\n<tr>\n<td>Office 2007<\/td>\n<td>Black, Blue, Silver<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n<p>Apply a theme across your entire application or per-section. Every one of the 103 controls respects the active theme \u2014 consistent appearance without custom templates.<\/p>\n<\/section>\n\n<section>\n<h2>Runs on .NET 10 \u2014 and every version before it<\/h2>\n\n<p>Framework support is broad:<\/p>\n\n<ul>\n<li><strong>.NET 10<\/strong> (LTS, supported through November 2028)<\/li>\n<li><strong>.NET 8<\/strong>, 9<\/li>\n<li><strong>.NET 6<\/strong>, 7<\/li>\n<li><strong>.NET Framework<\/strong> 4.0 through 4.8.1<\/li>\n<\/ul>\n\n<p>No conditional compilation, no compatibility shims \u2014 just one NuGet package that works across all of them. So if you&#8217;re migrating a .NET Framework app to .NET 10, the toolkit comes along for the ride.<\/p>\n<\/section>\n\n<section>\n<h2>The full control count<\/h2>\n\n<p>Here&#8217;s what 103 controls actually looks like, grouped by category:<\/p>\n\n<table>\n<thead>\n<tr>\n<th>Category<\/th>\n<th>Controls<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Text &amp; Input<\/td>\n<td>WatermarkTextBox, WatermarkPasswordBox, WatermarkComboBox, MaskedTextBox, AutoSelectTextBox, ValueRangeTextBox, MultiLineTextEditor, TokenizedTextBox<\/td>\n<\/tr>\n<tr>\n<td>Numeric<\/td>\n<td>ByteUpDown, ShortUpDown, IntegerUpDown, LongUpDown, SingleUpDown, DoubleUpDown, DecimalUpDown, CalculatorUpDown, Calculator<\/td>\n<\/tr>\n<tr>\n<td>Date &amp; Time<\/td>\n<td>DateTimePicker, DateTimeUpDown, TimePicker, TimeSpanUpDown, MultiCalendar<\/td>\n<\/tr>\n<tr>\n<td>Color<\/td>\n<td>ColorPicker, ColorCanvas<\/td>\n<\/tr>\n<tr>\n<td>Selection<\/td>\n<td>CheckComboBox, CheckListBox, MultiColumnComboBox, RangeSlider<\/td>\n<\/tr>\n<tr>\n<td>Buttons<\/td>\n<td>DropDownButton, SplitButton, IconButton, ButtonSpinner<\/td>\n<\/tr>\n<tr>\n<td>Data &amp; Display<\/td>\n<td>PropertyGrid, CollectionControl, PieChart, Chart, DataGrid<\/td>\n<\/tr>\n<tr>\n<td>Feedback<\/td>\n<td>BusyIndicator, ToggleSwitch, RadialGauge, Magnifier<\/td>\n<\/tr>\n<tr>\n<td>Containers<\/td>\n<td>ChildWindow, WindowContainer, StyleableWindow, Wizard<\/td>\n<\/tr>\n<tr>\n<td>Layout<\/td>\n<td>SwitchPanel (with 14 animated layout panels), TimelinePanel, PileFlowPanel<\/td>\n<\/tr>\n<tr>\n<td>Rich Text<\/td>\n<td>RichTextBox, RichTextBoxFormatBar<\/td>\n<\/tr>\n<tr>\n<td>Docking<\/td>\n<td>AvalonDock (full docking framework)<\/td>\n<\/tr>\n<tr>\n<td>Material Design<\/td>\n<td>21 Material Design controls<\/td>\n<\/tr>\n<tr>\n<td>Themes<\/td>\n<td>9 complete themes<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/section>\n\n<section>\n<h2>When you don&#8217;t need the Plus edition<\/h2>\n\n<p>Xceed offers a <a href=\"https:\/\/www.nuget.org\/packages\/Extended.Wpf.Toolkit\">free community edition<\/a> with about 48 controls \u2014 including AvalonDock, PropertyGrid, all the numeric up\/downs, DateTimePicker, ColorPicker, BusyIndicator, and more. For many projects, that&#8217;s enough.<\/p>\n\n<p>In contrast, the Plus edition adds the Material Design <strong>WPF UI controls<\/strong>, additional themes (Fluent, Material, Metro, Office), the Chart control, MultiCalendar, TokenizedTextBox, ToggleSwitch, RadialGauge, StyleableWindow, and other advanced components. Furthermore, it includes priority support and regular updates.<\/p>\n\n<p>Pricing starts at $659.95 for small businesses, with no runtime royalties. You can <a href=\"https:\/\/xceed.com\/trial\/\">request a 45-day free trial<\/a> to evaluate everything.<\/p>\n<\/section>\n\n<section>\n<h2>WPF&#8217;s control gap isn&#8217;t closing \u2014 but it doesn&#8217;t have to<\/h2>\n\n<p>Microsoft maintains WPF the platform \u2014 indeed, they optimize rendering, fix accessibility bugs, and improve XAML parsing. But they aren&#8217;t adding controls. After all, they haven&#8217;t added one since 2010, and there&#8217;s no indication they plan to start.<\/p>\n\n<p>Ultimately, that&#8217;s not a problem \u2014 it&#8217;s a design choice, since WPF&#8217;s extensibility model means third-party <strong>WPF UI controls<\/strong> can integrate seamlessly. The issue only arises if you try to build everything from scratch using just what ships in the box.<\/p>\n\n<p>Xceed Toolkit Plus for WPF fills every gap that matters. 103 controls, 9 themes, zero dependencies, running on .NET 10 today. For a framework that&#8217;s been powering desktop applications for two decades, having a <strong>WPF toolkit<\/strong> this mature makes all the difference.<\/p>\n\n<div class=\"cta-box\">\n<h3>Ready to try Xceed Toolkit Plus for WPF?<\/h3>\n<p>103 controls. 9 themes. Zero dependencies. Running on .NET 10 today.<\/p>\n<p><a class=\"cta-link\" href=\"https:\/\/xceed.com\/trial\/\">Start your 45-day free trial<\/a><\/p>\n<p><a class=\"cta-link\" href=\"https:\/\/www.nuget.org\/packages\/Extended.Wpf.Toolkit\">Try the free community edition<\/a><\/p>\n<\/div>\n<\/section>\n\n<section>\n<h2>Frequently asked questions<\/h2>\n\n<h3>Does WPF have a DateTimePicker?<\/h3>\n\n<p>No. WPF only includes a DatePicker that handles dates \u2014 not time selection. As a result, for a combined date-and-time picker, you need a third-party <strong>WPF toolkit<\/strong>. Xceed Toolkit Plus provides DateTimePicker, TimePicker, and TimeSpanUpDown as part of its 103 <strong>WPF UI controls<\/strong>.<\/p>\n\n<h3>What is the best WPF toolkit in 2026?<\/h3>\n\n<p>Xceed Toolkit Plus for WPF is the most widely adopted, with over 15.8 million NuGet downloads for the community edition alone. It provides 103 controls, runs on .NET 10, has zero dependencies, and has been maintained since WPF&#8217;s early days. No other <strong>toolkit for WPF<\/strong> matches its breadth or track record.<\/p>\n\n<h3>Is Xceed WPF Toolkit free?<\/h3>\n\n<p>The community edition of this <strong>WPF toolkit<\/strong> (Extended.Wpf.Toolkit on NuGet) includes about 48 controls and is free for non-commercial use. However, the Plus edition adds 55+ additional <strong>WPF UI controls<\/strong>, Material Design components, extra themes, and priority support \u2014 starting at $659.95 per developer with no runtime royalties.<\/p>\n\n<h3>Does Xceed Toolkit work on .NET 10?<\/h3>\n\n<p>Yes. This <strong>toolkit for WPF<\/strong> supports .NET 10 (the latest LTS release), along with .NET 6 through 9, and .NET Framework 4.0 through 4.8.1. As a result, a single NuGet package covers all target frameworks.<\/p>\n\n<h3>How many controls does Xceed Toolkit Plus include?<\/h3>\n\n<p>103 controls, panels, and themes. Categories include input controls, numeric up\/downs, date\/time pickers, color pickers, selection controls, buttons, data display (PropertyGrid, Charts), feedback controls, containers, layout panels, rich text editing, a docking framework (AvalonDock), and 21 Material Design components.<\/p>\n<\/section>\n\n<\/article>\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Does WPF have a DateTimePicker?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"No. WPF only includes a DatePicker that handles dates \u2014 not time selection. As a result, for a combined date-and-time picker, you need a third-party WPF toolkit. Xceed Toolkit Plus provides DateTimePicker, TimePicker, and TimeSpanUpDown as part of its 103 WPF UI controls.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is the best WPF toolkit in 2026?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Xceed Toolkit Plus for WPF is the most widely adopted, with over 15.8 million NuGet downloads for the community edition alone. It provides 103 controls, runs on .NET 10, has zero dependencies, and has been maintained since WPF's early days. No other toolkit for WPF matches its breadth or track record.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Is Xceed WPF Toolkit free?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"The community edition of this WPF toolkit (Extended.Wpf.Toolkit on NuGet) includes about 48 controls and is free for non-commercial use. However, the Plus edition adds 55+ additional WPF UI controls, Material Design components, extra themes, and priority support \u2014 starting at $659.95 per developer with no runtime royalties.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Does Xceed Toolkit work on .NET 10?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Yes. This toolkit for WPF supports .NET 10 (the latest LTS release), along with .NET 6 through 9, and .NET Framework 4.0 through 4.8.1. As a result, a single NuGet package covers all target frameworks.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How many controls does Xceed Toolkit Plus include?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"103 controls, panels, and themes. Categories include input controls, numeric up\/downs, date\/time pickers, color pickers, selection controls, buttons, data display (PropertyGrid, Charts), feedback controls, containers, layout panels, rich text editing, a docking framework (AvalonDock), and 21 Material Design components.\"\n      }\n    }\n  ]\n}\n<\/script>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/prism.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/components\/prism-csharp.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/components\/prism-markup.min.js\"><\/script>\n<script>Prism.highlightAll();<\/script>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>WPF&#8217;s built-in control library hasn&#8217;t grown since 2010. Xceed Toolkit Plus for WPF delivers 103 controls \u2014 from DateTimePicker to PropertyGrid to a full docking framework \u2014 all running on .NET 10 with zero dependencies.<\/p>","protected":false},"author":17,"featured_media":3550,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[141,52,60],"tags":[70,72,762,761,254,763,82],"class_list":["post-3548","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all","category-news","category-tutorials","tag-net","tag-wpf","tag-wpf-toolkit","tag-wpf-ui","tag-wpf-ui-controls","tag-wpf-ui-toolkit","tag-xceed"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026 - Xceed<\/title>\n<meta name=\"description\" content=\"WPF ships without a DateTimePicker, NumericUpDown, or PropertyGrid. Xceed Toolkit Plus fills 103 gaps with controls that run on .NET 10 today.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/xceed.com\/fr\/blog\/nouvelles\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/\" \/>\n<meta property=\"og:locale\" content=\"fr_CA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026 - Xceed\" \/>\n<meta property=\"og:description\" content=\"WPF ships without a DateTimePicker, NumericUpDown, or PropertyGrid. Xceed Toolkit Plus fills 103 gaps with controls that run on .NET 10 today.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/xceed.com\/fr\/blog\/nouvelles\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/\" \/>\n<meta property=\"og:site_name\" content=\"Xceed\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-16T14:12:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-16T14:15:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/xceed.com\/wp-content\/uploads\/2026\/03\/wpf_ui_controls.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Technical Writer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Technical Writer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/\"},\"author\":{\"name\":\"Technical Writer\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/person\\\/66fdfcd0d8aba59714ee8630310915bc\"},\"headline\":\"103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026\",\"datePublished\":\"2026-03-16T14:12:20+00:00\",\"dateModified\":\"2026-03-16T14:15:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/\"},\"wordCount\":1772,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/wpf_ui_controls.png\",\"keywords\":[\".net\",\"WPF\",\"wpf toolkit\",\"wpf ui\",\"WPF UI controls\",\"wpf ui toolkit\",\"xceed\"],\"articleSection\":[\"All\",\"News\",\"Tutorials\"],\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/\",\"url\":\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/\",\"name\":\"103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026 - Xceed\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/wpf_ui_controls.png\",\"datePublished\":\"2026-03-16T14:12:20+00:00\",\"dateModified\":\"2026-03-16T14:15:05+00:00\",\"description\":\"WPF ships without a DateTimePicker, NumericUpDown, or PropertyGrid. Xceed Toolkit Plus fills 103 gaps with controls that run on .NET 10 today.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/#breadcrumb\"},\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/#primaryimage\",\"url\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/wpf_ui_controls.png\",\"contentUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/wpf_ui_controls.png\",\"width\":1536,\"height\":1024,\"caption\":\"Xceed UI Controls for WPf\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/news\\\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/xceed.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/xceed.com\\\/fr\\\/\",\"name\":\"Xceed\",\"description\":\"Provides tools for .NET, Windows Forms, WPF, Silverlight, and ASP.NET developers to create better applications.\",\"publisher\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/xceed.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\",\"name\":\"Xceed\",\"url\":\"https:\\\/\\\/xceed.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/cropped-xceed-logo.png\",\"contentUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/cropped-xceed-logo.png\",\"width\":609,\"height\":150,\"caption\":\"Xceed\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/person\\\/66fdfcd0d8aba59714ee8630310915bc\",\"name\":\"Technical Writer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0030bb8372562c953cb6409907492d051e06b7c67c4161b4a7efde2ecaff4201?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0030bb8372562c953cb6409907492d051e06b7c67c4161b4a7efde2ecaff4201?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0030bb8372562c953cb6409907492d051e06b7c67c4161b4a7efde2ecaff4201?s=96&d=mm&r=g\",\"caption\":\"Technical Writer\"},\"url\":\"https:\\\/\\\/xceed.com\\\/fr\\\/blog\\\/author\\\/technicalwriter\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026 - Xceed","description":"WPF ships without a DateTimePicker, NumericUpDown, or PropertyGrid. Xceed Toolkit Plus fills 103 gaps with controls that run on .NET 10 today.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/xceed.com\/fr\/blog\/nouvelles\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/","og_locale":"fr_CA","og_type":"article","og_title":"103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026 - Xceed","og_description":"WPF ships without a DateTimePicker, NumericUpDown, or PropertyGrid. Xceed Toolkit Plus fills 103 gaps with controls that run on .NET 10 today.","og_url":"https:\/\/xceed.com\/fr\/blog\/nouvelles\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/","og_site_name":"Xceed","article_published_time":"2026-03-16T14:12:20+00:00","article_modified_time":"2026-03-16T14:15:05+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/03\/wpf_ui_controls.png","type":"image\/png"}],"author":"Technical Writer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Technical Writer","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/#article","isPartOf":{"@id":"https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/"},"author":{"name":"Technical Writer","@id":"https:\/\/xceed.com\/fr\/#\/schema\/person\/66fdfcd0d8aba59714ee8630310915bc"},"headline":"103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026","datePublished":"2026-03-16T14:12:20+00:00","dateModified":"2026-03-16T14:15:05+00:00","mainEntityOfPage":{"@id":"https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/"},"wordCount":1772,"commentCount":0,"publisher":{"@id":"https:\/\/xceed.com\/fr\/#organization"},"image":{"@id":"https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/#primaryimage"},"thumbnailUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/03\/wpf_ui_controls.png","keywords":[".net","WPF","wpf toolkit","wpf ui","WPF UI controls","wpf ui toolkit","xceed"],"articleSection":["All","News","Tutorials"],"inLanguage":"fr-CA","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/","url":"https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/","name":"103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026 - Xceed","isPartOf":{"@id":"https:\/\/xceed.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/#primaryimage"},"image":{"@id":"https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/#primaryimage"},"thumbnailUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/03\/wpf_ui_controls.png","datePublished":"2026-03-16T14:12:20+00:00","dateModified":"2026-03-16T14:15:05+00:00","description":"WPF ships without a DateTimePicker, NumericUpDown, or PropertyGrid. Xceed Toolkit Plus fills 103 gaps with controls that run on .NET 10 today.","breadcrumb":{"@id":"https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/#breadcrumb"},"inLanguage":"fr-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/"]}]},{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/#primaryimage","url":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/03\/wpf_ui_controls.png","contentUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2026\/03\/wpf_ui_controls.png","width":1536,"height":1024,"caption":"Xceed UI Controls for WPf"},{"@type":"BreadcrumbList","@id":"https:\/\/xceed.com\/blog\/news\/103-wpf-ui-controls-microsoft-never-built-but-you-still-need-in-2026\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/xceed.com\/"},{"@type":"ListItem","position":2,"name":"103 WPF UI Controls Microsoft Never Built \u2014 But You Still Need in 2026"}]},{"@type":"WebSite","@id":"https:\/\/xceed.com\/fr\/#website","url":"https:\/\/xceed.com\/fr\/","name":"Xceed","description":"Fournit des outils aux d\u00e9veloppeurs .NET, Windows Forms, WPF, Silverlight et ASP.NET pour cr\u00e9er de meilleures applications.","publisher":{"@id":"https:\/\/xceed.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/xceed.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-CA"},{"@type":"Organization","@id":"https:\/\/xceed.com\/fr\/#organization","name":"Xceed","url":"https:\/\/xceed.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/xceed.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/xceed.com\/wp-content\/uploads\/2024\/04\/cropped-xceed-logo.png","contentUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2024\/04\/cropped-xceed-logo.png","width":609,"height":150,"caption":"Xceed"},"image":{"@id":"https:\/\/xceed.com\/fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/xceed.com\/fr\/#\/schema\/person\/66fdfcd0d8aba59714ee8630310915bc","name":"Technical Writer","image":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/secure.gravatar.com\/avatar\/0030bb8372562c953cb6409907492d051e06b7c67c4161b4a7efde2ecaff4201?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0030bb8372562c953cb6409907492d051e06b7c67c4161b4a7efde2ecaff4201?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0030bb8372562c953cb6409907492d051e06b7c67c4161b4a7efde2ecaff4201?s=96&d=mm&r=g","caption":"Technical Writer"},"url":"https:\/\/xceed.com\/fr\/blog\/author\/technicalwriter\/"}]}},"_links":{"self":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/posts\/3548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/comments?post=3548"}],"version-history":[{"count":0,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/posts\/3548\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/media\/3550"}],"wp:attachment":[{"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/media?parent=3548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/categories?post=3548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xceed.com\/fr\/wp-json\/wp\/v2\/tags?post=3548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}