﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://community.devexpress.com/feed-stylesheets/atom.xsl" media="screen"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Thinking Out Loud</title>
  <subtitle type="text"></subtitle>
  <id>https://community.devexpress.com/Blogs/thinking/atom</id>
  <updated>2026-06-09T00:33:58Z</updated>
  <link rel="alternate" href="https://community.devexpress.com/Blogs/thinking/default.aspx" />
  <entry>
    <id>https://community.devexpress.com/Blogs/thinking/archive/2017/12/12/wpf-theme-designer-v17-2.aspx</id>
    <title type="text">WPF Theme Designer (v17.2)</title>
    <published>2017-12-12T11:26:00Z</published>
    <updated>2026-06-09T00:33:58Z</updated>
    <author>
      <name>Ray Navasarkian (DevExpress)</name>
    </author>
    <link rel="alternate" href="https://community.devexpress.com/Blogs/thinking/archive/2017/12/12/wpf-theme-designer-v17-2.aspx" />
    <category term="Custom Themes" scheme="https://community.devexpress.com/Tags/Custom+Themes" />
    <category term="Skins" scheme="https://community.devexpress.com/Tags/Skins" />
    <category term="Themes" scheme="https://community.devexpress.com/Tags/Themes" />
    <category term="V17.2" scheme="https://community.devexpress.com/Tags/V17.2" />
    <category term="WPF" scheme="https://community.devexpress.com/Tags/WPF" />
    <category term="WPF Theme Designer" scheme="https://community.devexpress.com/Tags/WPF+Theme+Designer" />
    <content type="html">    &lt;p&gt;As you know, a typical app-wide color scheme consists of numerous palettes/colors/shades. Without the proper tools, creating your own custom theme can be incredibly tedious and time consuming process - a process that very few people willingly tackle. &lt;/p&gt;
    &lt;p&gt;In this blog post, I will demonstrate how to quickly customize an existing &lt;a href="https://www.devexpress.com/products/net/controls/wpf/themes/" target="_blank"&gt;DevExpress WPF theme&lt;/a&gt; and how you and your team can leverage our WPF Theme Designer to tailor the look and feel of WPF apps you deliver to end-users. &lt;/p&gt;

&lt;p&gt;
&lt;img alt="WPF Theme Designer: Transformation" src="https://community.devexpress.com/blogs/thinking/172/wpf-themes/01-wpf-theme-designer-transformation.png"&gt;
&lt;/p&gt;

    &lt;h2&gt;Download and Install&lt;/h2&gt;
    
    &lt;p&gt;The DevExpress WPF Theme Designer was designed to reduce the grunt work associated with custom app-wide theme development. It is a free standalone tool that allows you to generate custom themes by altering the base colors of existing DevExpress Themes for the WPF platform. To customize existing DevExpress themes, you&amp;#39;ll need to download the Theme Designer and install it on your machine:&lt;/p&gt;

    &lt;p&gt;&lt;a href="https://www.devexpress.com/products/net/controls/wpf/themes/theme-designer.xml" target="_blank"&gt;https://www.devexpress.com/products/net/controls/wpf/themes/theme-designer.xml&lt;/a&gt;&lt;/p&gt;
    
    &lt;p&gt;Once you&amp;#39;ve installed the Theme Designer, you are ready to explore its capabilities.&lt;/p&gt;
    
    &lt;h2&gt;Modify an Existing Theme&lt;/h2&gt;
    
    &lt;p&gt;Though you can always build a theme from scratch, it&amp;#39;s best to start with a theme that offers you most of what you need. My objective in this blog post is to take the DevExpress Office 2016 Colorful theme and modify a couple of its colors so that it is more in line with Microsoft Excel.&lt;/p&gt;
    
    &lt;p&gt;To begin, I will build my project by pressing the F6 key or by clicking the Build Ribbon button. &lt;/p&gt;

&lt;p&gt;
&lt;img alt="WPF Theme Designer: First Look" src="https://community.devexpress.com/blogs/thinking/172/wpf-themes/02-wpf-Theme-Designer.png"&gt;
&lt;/p&gt;
    
    &lt;p&gt;Next, I&amp;#39;ll select a DevExpress control on the left panel to preview its color scheme.&lt;/p&gt;
    
    &lt;p&gt;The panel on the right displays the theme&amp;#39;s palette (combines colors used by different controls). The Palette tab for the Office 2016 Colorful theme includes 29 colors. The Individual Colors tab on the right panel includes thousands of colors. I can group them to see which colors are included within the palette.&lt;/p&gt;

&lt;p&gt;
&lt;img alt="WPF Theme Designer: Palette Colors" src="https://community.devexpress.com/blogs/thinking/172/wpf-themes/03-wpf-theme-designer-colors.png"&gt;
&lt;/p&gt;

    
    &lt;p&gt;Note that changing a palette color automatically sets a new value for all corresponding individual colors. This reduces the amount of work involved in customizing them and helps maintain overall consistency.&lt;/p&gt;
    
    &lt;h2&gt;Make it Look Like Excel&lt;/h2&gt;
    
    &lt;p&gt;The next step is to change the background color of the DevExpress Ribbon and Hamburger Menu to mimic the appearance of Microsoft Excel. &lt;/p&gt;
    
    &lt;p&gt;To obtain the name of the required palette color, I select the Filter Colors tool and point to the ribbon background area while holding the SHIFT key.&lt;/p&gt;

&lt;p&gt;
&lt;img alt="WPF Theme Designer: Filter Colors" src="https://community.devexpress.com/blogs/thinking/172/wpf-themes/04-wpf-theme-designer-Filter%20Colors.png"&gt;
&lt;/p&gt;

    
    &lt;p&gt;If you&amp;#39;re following along, you&amp;#39;ll notice that I must modify the Backstage.Window.Background color. To double-check, I click the Highlight Colors tool and select this palette color to highlight all affected elements.&lt;/p&gt;

&lt;p&gt;
&lt;img alt="WPF Theme Designer: Highlight Elements" src="https://community.devexpress.com/blogs/thinking/172/wpf-themes/05-wpf-theme-designer-Highlight.png"&gt;
&lt;/p&gt;

    
    &lt;p&gt;Once I know what I need to modify, it&amp;#39;s time to select the new color. The Theme Designer&amp;#39;s built-in Color Picker allows me to select any on-screen color. I&amp;#39;ll use it to pick the color (green) used within Microsoft Excel.&lt;/p&gt;

&lt;p&gt;
&lt;img alt="WPF Theme Designer: Color Picker" src="https://community.devexpress.com/blogs/thinking/172/wpf-themes/06-wpf-theme-designer-color-picker.png"&gt;
&lt;/p&gt;

    
    &lt;p&gt;Note that by changing the Backstage.Window.Background palette color, I set a new value for all 81 occurrences of this color within different DevExpress controls: the Ribbon&amp;#39;s background in the Ribbon, Diagram Designer and Spreadsheet controls, the background of the Hamburger Menu, etc.&lt;/p&gt;
    
&lt;p&gt;
&lt;img alt="WPF Theme Designer: Excel Green Color" src="https://community.devexpress.com/blogs/thinking/172/wpf-themes/07-wpf-theme-designer-green.png"&gt;
&lt;/p&gt;


    &lt;p&gt;I use the Color Editor to set the Backstage.Delimiter, Backstage.HoverBackground and Backstage.SelectionBackground palette colors by modifying the tone and saturation of the Backstage.Window.Background color value.&lt;/p&gt;

&lt;p&gt;
&lt;img alt="WPF Theme Designer: Shades of Green" src="https://community.devexpress.com/blogs/thinking/172/wpf-themes/08-wpf-theme-designer-highlights.png"&gt;
&lt;/p&gt;

    
&lt;h2&gt;Apply the New Theme to the Application&lt;/h2&gt;

    &lt;p&gt;To apply the new theme to an application, I&amp;#39;ll need to build the assembly by clicking the Publish button and add a reference to this assembly within my application project...&lt;/p&gt;

&lt;p&gt;
&lt;img alt="WPF Theme Designer: Load the Assembly" src="https://community.devexpress.com/blogs/thinking/172/wpf-themes/09-wpf-theme-designer-assembly.png"&gt;
&lt;/p&gt;
    
    &lt;p&gt;...And add a few lines of code to the app.xaml.cs file.&lt;/p&gt;

    &lt;pre class="brush:csharp;"&gt;var theme = new Theme(&amp;quot;TestTheme&amp;quot;);
theme.AssemblyName = &amp;quot;DevExpress.Xpf.Themes.TestTheme.v17.2&amp;quot;;
Theme.RegisterTheme(theme);
ApplicationThemeHelper.ApplicationThemeName = &amp;quot;TestTheme&amp;quot;;
&lt;/pre&gt;
    
    &lt;p&gt;If you are ready to customize an existing WPF theme and want to learn more, please refer to the following online resources:&lt;/p&gt;
    
    &lt;p&gt;&lt;a href="https://documentation.devexpress.com/WpfThemeDesigner/118707/WPF-Theme-Designer" target="_blank"&gt;https://documentation.devexpress.com/WpfThemeDesigner/118707/WPF-Theme-Designer&lt;/a&gt;
    &lt;br&gt;
    &lt;a href="https://www.youtube.com/watch?v=q1OwsGLOQ_Q"&gt;https://www.youtube.com/watch?v=q1OwsGLOQ_Q&lt;/a&gt;&lt;/p&gt;
    
    &lt;p&gt;I&amp;#39;d love to hear from you - please share your thoughts on our WPF Theme Designer using the comments field below.&lt;/p&gt;        </content>
  </entry>
  <entry>
    <id>https://community.devexpress.com/Blogs/thinking/archive/2017/11/30/wpf-themes-vs-2017-amp-office-2016-black-v17-2.aspx</id>
    <title type="text">WPF Themes – VS 2017 &amp; Office 2016 Black (v17.2)</title>
    <published>2017-11-30T11:46:00Z</published>
    <updated>2026-06-09T00:33:58Z</updated>
    <author>
      <name>Ray Navasarkian (DevExpress)</name>
    </author>
    <link rel="alternate" href="https://community.devexpress.com/Blogs/thinking/archive/2017/11/30/wpf-themes-vs-2017-amp-office-2016-black-v17-2.aspx" />
    <category term="Office" scheme="https://community.devexpress.com/Tags/Office" />
    <category term="Skins" scheme="https://community.devexpress.com/Tags/Skins" />
    <category term="Themes" scheme="https://community.devexpress.com/Tags/Themes" />
    <category term="V17.2" scheme="https://community.devexpress.com/Tags/V17.2" />
    <category term="visual studio" scheme="https://community.devexpress.com/Tags/visual+studio" />
    <category term="WPF" scheme="https://community.devexpress.com/Tags/WPF" />
    <content type="html">&lt;p&gt;Our most recent release (v17.2) ships with three Visual Studio-inspired themes. These themes are a great option for those who prefer a Dock-based UX versus MDI or SDI interfaces.&lt;/p&gt;&lt;p&gt;&lt;img alt="WPF Themes - Visual Studio" src="https://community.devexpress.com/blogs/thinking/WPF/Themes/WPF-Themes-Visual-Studio.png"&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;In addition to use within dock-based apps (apps that mirror the functionality found within Visual Studio), these themes can be used by those of you who prefer a more modern alternative to our Metropolis themes. &lt;br&gt;For those who prefer our Microsoft Office-inspired themes, v17.2 ships with a new Black option:&lt;/p&gt;&lt;p&gt;&lt;img alt="WPF Themes - Office Black" src="https://community.devexpress.com/blogs/thinking/WPF/Themes/WPF-Themes-Office-Black.png"&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color:transparent;"&gt;Both the VS 2017 and Office 2016 SE themes offer a simplified XAML file structure and support Color Palettes. All individual element colors (about 3000-4000 based upon theme complexity) within these themes are grouped into palettes of 30-40 colors - wherein every palette color describes a certain logical portion of the UI.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color:transparent;"&gt;&lt;img alt="WPF Themes - Color Palettes" src="https://community.devexpress.com/blogs/thinking/WPF/Themes/WPF-Themes-Color-Palette.png"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color:transparent;"&gt;You can use these Color Palettes as your starting point to create your own themes using the &lt;a href="https://www.devexpress.com/products/net/controls/wpf/themes/" target="_blank"&gt;DevExpress Theme Designer&lt;/a&gt; tool. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color:transparent;"&gt;Excited about the new themes or Theme Designer? Have questions or feedback that you want to share? Let us know in the comments below or send us an email at support@devexpress.com. &lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://community.devexpress.com/Blogs/thinking/archive/2017/11/30/winforms-pivot-grid-excel-inspired-filter-popup-and-conditional-formatting.aspx</id>
    <title type="text">WinForms Pivot Grid: Excel Inspired Filtering and Conditional Formatting (v17.2)</title>
    <published>2017-11-30T10:20:00Z</published>
    <updated>2026-06-09T00:33:58Z</updated>
    <author>
      <name>Ray Navasarkian (DevExpress)</name>
    </author>
    <link rel="alternate" href="https://community.devexpress.com/Blogs/thinking/archive/2017/11/30/winforms-pivot-grid-excel-inspired-filter-popup-and-conditional-formatting.aspx" />
    <category term="Conditional Formatting" scheme="https://community.devexpress.com/Tags/Conditional+Formatting" />
    <category term="Excel" scheme="https://community.devexpress.com/Tags/Excel" />
    <category term="Filterering" scheme="https://community.devexpress.com/Tags/Filterering" />
    <category term="Pivot Grid" scheme="https://community.devexpress.com/Tags/Pivot+Grid" />
    <category term="Pivot Table" scheme="https://community.devexpress.com/Tags/Pivot+Table" />
    <category term="search" scheme="https://community.devexpress.com/Tags/search" />
    <category term="V17.2" scheme="https://community.devexpress.com/Tags/V17.2" />
    <category term="WinForms" scheme="https://community.devexpress.com/Tags/WinForms" />
    <content type="html">&lt;p&gt;&lt;b&gt;&lt;span style="font-size:12pt;"&gt;Excel-Style Filter Popup&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;As you may know, our &lt;a href="https://www.devexpress.com/products/net/controls/winforms/grid/" target="_blank"&gt;WinForms Grid&lt;/a&gt;, &lt;a href="https://www.devexpress.com/products/net/controls/winforms/tree_list/" target="_blank"&gt;WinForms TreeList&lt;/a&gt; and &lt;a href="https://www.devexpress.com/products/net/controls/winforms/vertical_grid/" target="_blank"&gt;WinForms Vertical Grid&lt;/a&gt; controls allow end-users to filter data using &lt;a href="https://community.devexpress.com/blogs/thinking/archive/2016/11/29/winforms-grid-control-improved-column-based-filtering-options-coming-soon-in-v16-2.aspx"&gt;Excel-like filter popups&lt;/a&gt;.&amp;nbsp;These filter popups were designed to display unique filter options based upon the data type associated with a column.&amp;nbsp;&lt;/p&gt;&lt;p&gt;With our most recent release (v17.2), this feature is now available to those of you using our &lt;a href="https://www.devexpress.com/products/net/controls/winforms/pivot_grid/" target="_blank"&gt;WinForms Pivot Grid&lt;/a&gt; control.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-demo.png" alt=""&gt;&lt;/p&gt;&lt;p&gt;To see this new feature in action, be sure to run our &lt;b&gt;Excel Style Filtering&lt;/b&gt; demo. &lt;i&gt;If you have our Demo Center installed (v17.2), you can launch the demo using &lt;a href="dxdemo://Win/XtraPivotGrid/MainDemo/ExcelStyleFiltering"&gt;this link&lt;/a&gt;.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;This new filtering option has the following advantages over classic filter popups and pre-filters:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;b&gt;Automatic Filtering Options based upon a Field&amp;#39;s Data Type&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The Pivot Grid detects the filtered field&amp;#39;s data type and selects the appropriate UI. For instance, the filter popup displays list of values for string fields...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-string-popup.png" alt=""&gt;&lt;/div&gt;&lt;p&gt;&lt;i&gt;... &lt;/i&gt;a range selector for numeric values ...&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-range-popup.png" alt=""&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;... or tree-like filter for date-time values.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-date-popup.png" alt=""&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Extended Filtering via the Filters Tab&lt;/b&gt;&lt;/p&gt;&lt;div&gt;For maximum flexibility, end-users can select from a wide range of predefined operators (such as Begins with, Equals, Contains, etc).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-textfilters-popup.png" alt=""&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;Instant Search&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Built-in search allows end-users to locate required values within the filter popup.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-search-popup.png" alt=""&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Integration with External Filters&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Our WinForms Pivot Grid&amp;#39;s filtering UI is fully synchronized with our external filter editors (generated using the&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/ctodx/archive/2017/11/13/unified-criteria-based-filtering-in-winforms-grids-coming-soon-in-v17-2.aspx"&gt;Filtering UI Context component&lt;/a&gt;). This means that any filter operation performed using the Pivot Grid UI is reflected in external filters (and vice versa).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-external-filters.png" alt=""&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Predefined Filters&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;Predefined filters can be used to apply filters using specified values missing in an underlying data source.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-predefined-popup.png" alt=""&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Filter Editor Support&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Filters applied using the Excel-style filter popup can be changed within the Filter Editor dialog, allowing end-users to apply complex filter conditions when necessary.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-filter-editor.png" alt=""&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Instant Filtering&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;The Pivot Grid immediately updates its data once you change filter values within the popup - without the need to click any buttons.&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-instant-filtering.gif" alt=""&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Important Note: Excel-style filtering is not enabled by default for new projects because it has some limitations: &lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;You cannot use this feature in OLAP mode.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Excel-style filters cannot be used for group filtering.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;We expect to support OLAP mode and group filtering in our v18.1 release cycle.&amp;nbsp;&lt;/i&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-size:12pt;"&gt;Excel-Inspired Conditional Formatting&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Conditional formatting allows you and your end-users to alter the appearance of individual data cells based on specific conditions - and highlight critical information, identify business trends and compare data points. The Pivot Grid&amp;#39;s context menu provides a number of presets that allow users to create rules without formulas:&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-cf-contextmenu.png" alt=""&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Below are some common usage scenarios...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Highlight values that are less than a specific threshold (4,000,000 in the example below):&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-cf-threshold.png" alt=""&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Highlight best or worst values. Top 5 trademarks are highlighted in the image below:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-cf-topbottom.png" alt=""&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Use Color Scales to quickly compare high and low values using their color representation.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-cf-colorscales.png" alt=""&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;When you use conditional formatting to show Data Bars, the Pivot Grid draws a bar in each cell whose width corresponds to the value of the cell relative to the other cells.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-cf-databars.png" alt=""&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Finally, end-users can change rules in our Excel-inspired Rules Manager:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/thinking/WinForms-Pivot-Table/winforms-pivot-excel-features-cf-manager.png" alt=""&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Please take a moment to try our newest WinForms Demos and tell us what you think about these Excel-inspired Pivot Grid features.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://community.devexpress.com/Blogs/thinking/archive/2017/05/29/using-azure-to-store-and-load-devexpress-reports-across-all-supported-platforms.aspx</id>
    <title type="text">Using Azure to Store and Load DevExpress Reports Across All Supported Platforms</title>
    <published>2017-05-29T08:49:00Z</published>
    <updated>2026-06-09T00:33:58Z</updated>
    <author>
      <name>Ray Navasarkian (DevExpress)</name>
    </author>
    <link rel="alternate" href="https://community.devexpress.com/Blogs/thinking/archive/2017/05/29/using-azure-to-store-and-load-devexpress-reports-across-all-supported-platforms.aspx" />
    <category term="Azure" scheme="https://community.devexpress.com/Tags/Azure" />
    <category term="cloud" scheme="https://community.devexpress.com/Tags/cloud" />
    <category term="End User Report Designer" scheme="https://community.devexpress.com/Tags/End+User+Report+Designer" />
    <category term="Reporting" scheme="https://community.devexpress.com/Tags/Reporting" />
    <category term="reports" scheme="https://community.devexpress.com/Tags/reports" />
    <content type="html">&lt;p&gt;In this blog post&amp;nbsp;we&amp;#39;ll describe how you can&amp;nbsp;store &lt;a href="https://www.devexpress.com/subscriptions/reporting/" target="_blank"&gt;DevExpress Reports&lt;/a&gt; on Azure. As you&amp;#39;ll soon discover, you can use this approach to&amp;nbsp;create a shared report repository and make it available via simple Open/Save report commands.&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you are currently using DevExpress Reports for .NET, you already know that we offer Report Viewers and Designers for ASP.NET, WinForms and WPF. The&amp;nbsp;benefit&amp;nbsp;of the&amp;nbsp;implementation described herein&amp;nbsp;is that&amp;nbsp;regardless of target platform (Desktop or Web clients), end-users will have access to all the reports you store on Azure. &lt;/p&gt;&lt;p&gt;Those of you with no interest in storing reports on Azure might still find this example&amp;nbsp;quite useful&amp;nbsp;- as it&amp;#39;s an excellent way to store&amp;nbsp;your Report Gallery (predefined elements/reports) and share it with users. &lt;/p&gt;

 
&lt;p&gt;
&lt;img alt="Report Storage on Azure" src="https://community.devexpress.com/blogs/thinking/171/reports-azure-storage.png"&gt;
&lt;/p&gt;
 

&lt;p&gt;Regardless of the usage scenario,&amp;nbsp;our implementation is straightforward and based on the following: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The API used to manage Azure storage provided by the &amp;quot;WindowsAzure.Storage&amp;quot; NuGet package. &lt;/li&gt;
&lt;li&gt;The storage extension engine in our Reporting platform.  &lt;/li&gt;
&lt;/ul&gt;
 
&lt;p&gt;I&amp;#39;ll explain the basics in this article, but if you’re ready to get started and want to skip the explanation,&amp;nbsp;&lt;a href="https://www.devexpress.com/Support/Center/Question/Details/T514879"&gt;download&amp;nbsp;the sample&lt;/a&gt; published in our Knowledge Base.  &lt;/p&gt;

 

&lt;h2&gt;Setting Up Azure Access&lt;/h2&gt; 

&lt;p&gt;If you don&amp;#39;t already have an Azure account, you&amp;#39;ll want to get one setup using the following link:&amp;nbsp;&amp;nbsp; &lt;/p&gt;

&lt;p&gt;
&lt;a href="https://docs.microsoft.com/en-us/azure/storage/storage-create-storage-account"&gt;https://docs.microsoft.com/en-us/azure/storage/storage-create-storage-account &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Once you&amp;#39;ve obtained login credentials, we recommend that you add them to &lt;b&gt;app.config&lt;/b&gt;, as shown below. You’ll then transmit the connection string to method calls that register your custom extensions.   &lt;/p&gt;

&lt;pre class="brush: html"&gt;&amp;lt;appSettings&amp;gt;
  &amp;lt;add key=&amp;quot;StorageConnectionString&amp;quot; 
 value=&amp;quot;DefaultEndpointsProtocol=https;AccountName=ACCOUNT;AccountKey=KEY&amp;quot; /&amp;gt;
&amp;lt;/appSettings&amp;gt;
&lt;/pre&gt;

&lt;h2&gt;Create a Shared Azure Storage for Reports &lt;/h2&gt;

&lt;p&gt;Let’s start with the extension that creates a common Azure storage for reports accessed through Open/Save UI commands. First, you&amp;#39;ll&amp;nbsp;need to create a ReportStorageWebExtension descendant and implement methods that cover basic actions such as display&amp;nbsp;the&amp;nbsp;report list, obtain a specific report, save a report to storage. Here’s your class stub with comments. &lt;/p&gt;

&lt;pre class="brush: csharp"&gt; 
public class MyReportStorageWebExtension : 
      DevExpress.XtraReports.Web.Extensions.ReportStorageWebExtension { 
    // use Microsoft Azure API 
  readonly Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer container; 
  public MyReportStorageWebExtension(string storageAccountConnectionString) { 
      // initialize your storage using the connection string 
  } 
 
  public override Dictionary GetUrls() { 
      // retrieve report collection 
  } 
  
  public override byte[] GetData(string url) { 
      // obtain a report identified by its URL 
  } 
  
  public override bool CanSetData(string url) { 
      // can a report be updated? 
  } 
  
  public override void SetData(XtraReport report, string url) { 
      // update the report 
  } 
  
  public override string SetNewData(XtraReport report, string defaultUrl) { 
      // save a new report 
  } 
} 
&lt;/pre&gt;
 
&lt;p&gt;You&amp;#39;ll then register this newly created extension so that it takes effect. In our ASP.NET sample, you see a call to a static method in the &lt;b&gt;Application_Start()&lt;/b&gt; method in &lt;b&gt;Global.asax.cs&lt;/b&gt;. In WinForms, put it inside the &lt;b&gt;Main()&lt;/b&gt; method.   &lt;/p&gt;

&lt;pre class="brush: csharp"&gt;ReportStorageWebExtension.RegisterExtensionGlobal(
   new MyReportStorageWebExtension(
      ConfigurationManager.AppSettings[&amp;quot;StorageConnectionString&amp;quot;]
   )
); 
&lt;/pre&gt;
 

&lt;h2&gt;Create a Shared Azure Storage for the Report Gallery &lt;/h2&gt;

&lt;p&gt;The report Gallery is one of the Tool Windows you’ll find in the End-User Report Designer. It lists report templates, re-usable blocks with a few controls grouped together, or commonly used styles you can apply to elements.  &lt;/p&gt;

&lt;p&gt;If you want all these to be stored in the same centralized Azure storage, the procedure is mostly the same. This time, you need a &lt;b&gt;ReportGalleryExtension&lt;/b&gt; class descendant.  &lt;/p&gt;

&lt;pre class="brush: csharp"&gt;class CloudReportGalleryExtension :
       ReportGalleryExtension { 
    // use Microsoft Azure API 
    readonly Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer container; 
    public CloudReportGalleryExtension(string connectionString){ 
        // initialize storage container 
    } 
    public override void SaveGallery(Gallery gallery) { 
        // save gallery 
    } 
  
    public override bool TryLoadGallery(out Gallery gallery) { 
        // check if a gallery can be loaded 
    } 
  
    CloudBlockBlob LoadBlob() { 
        // load gallery contents 
    } 
} 
&lt;/pre&gt;
 
&lt;p&gt;Use the following&amp;nbsp;to register the class in the system: &lt;/p&gt;

&lt;pre class="brush: csharp"&gt;ReportGalleryExtension.RegisterExtensionGlobal(
   ConfigurationManager.AppSettings[&amp;quot;StorageConnectionString&amp;quot;]
); 
&lt;/pre&gt;
 

&lt;h2&gt;Try Our Sample  &lt;/h2&gt;

&lt;p&gt;As mentioned, we&amp;#39;ve &lt;a href="https://www.devexpress.com/Support/Center/Question/Details/T514879"&gt;published a complete sample&lt;/a&gt; demonstrating&amp;nbsp;implementation details. The downloadable solution contains both an ASP.NET and WinForms application. If you have your Azure Storage account set up, update the connection string settings in the project and run it to see how it works.  &lt;/p&gt;

&lt;p&gt;Please&amp;nbsp;remember, while we chose to showcase Azure storage in this sample, our extension model allows you to implement any kind of cloud or non-cloud storage provided that you have the necessary API.  &lt;/p&gt;

 </content>
  </entry>
  <entry>
    <id>https://community.devexpress.com/Blogs/thinking/archive/2017/05/15/pricing-changes-to-the-devexpress-winforms-subscription.aspx</id>
    <title type="text">Pricing Changes to the DevExpress WinForms Subscription</title>
    <published>2017-05-15T13:50:00Z</published>
    <updated>2026-06-09T00:33:58Z</updated>
    <author>
      <name>Ray Navasarkian (DevExpress)</name>
    </author>
    <link rel="alternate" href="https://community.devexpress.com/Blogs/thinking/archive/2017/05/15/pricing-changes-to-the-devexpress-winforms-subscription.aspx" />
    <category term="Pricing" scheme="https://community.devexpress.com/Tags/Pricing" />
    <category term="v17.1" scheme="https://community.devexpress.com/Tags/v17.1" />
    <category term="WinForms" scheme="https://community.devexpress.com/Tags/WinForms" />
    <content type="html">&lt;div&gt;A moment ago, I posted a message regarding changes to our &lt;a href="https://www.devexpress.com/subscriptions/asp/" target="_blank"&gt;ASP.NET Subscription&lt;/a&gt;. If you&amp;#39;re using our &lt;a href="https://www.devexpress.com/products/net/controls/winforms/" target="_blank"&gt;WinForms product line&lt;/a&gt;, you can expect a similar change once we release v17.1.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Before I summarize changes to pricing, I want to state that these changes will &lt;b&gt;not &lt;/b&gt;affect active WinForms&amp;nbsp;subscribers. If you&amp;nbsp;own an active&amp;nbsp;WinForms Subscription, you will&amp;nbsp;have the right to renew it upon expiration at $399.99.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;With that said,&amp;nbsp;we do expect to increase pricing for our WinForms Subscription once we launch v17.1. Pricing for new licenses will be as follows:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;1st Year&amp;nbsp;Subscription Cost: $999.99&lt;/div&gt;&lt;div&gt;Renewal Subscription&amp;nbsp;Cost: $449.99&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Again, if you own an active WinForms Subscription, this price&amp;nbsp;increase will&amp;nbsp;&lt;b&gt;not&amp;nbsp;&lt;/b&gt;impact you. As a courtesy, should your organization require additional WinForms licenses between now and May 31, 2017, you can purchase licenses at our old price point of $899.99. &lt;/div&gt;&lt;p&gt;&lt;b&gt;Upgrade Your Subscription to DevExpress Universal&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Just like our ASP.NET Subscribers, we&amp;#39;re doing our best to make it easy for you and your team to upgrade your existing WinForms Subscription to DevExpress Universal...&lt;/p&gt;&lt;p&gt;If you’ve considered upgrading your WinForms Subscription to DevExpress Universal in the past, but have hesitated due to pricing concerns,&amp;nbsp;I have some good news for you. Based on your organization’s purchase and licensing history,&amp;nbsp;I&amp;#39;ve&amp;nbsp;instructed&amp;nbsp;our Client Services&amp;nbsp;Team to&amp;nbsp;offer preferential pricing to those wishing to acquire our Universal Subscription by May 31, 2017. If this option is of interest, please do contact us so we can put together the best possible offer for your company.&amp;nbsp;&lt;/p&gt;&lt;p&gt;We are here and ready to help - please contact us with any questions.&amp;nbsp;DevExpress Client Services can be reached via email at&amp;nbsp;clientservices@devexpress.com or by phone at +1 (818) 844 3383. &lt;i&gt;&lt;/i&gt;&lt;sub&gt;&lt;/sub&gt;&lt;strike&gt;&lt;/strike&gt;&lt;br&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://community.devexpress.com/Blogs/thinking/archive/2017/05/15/upcoming-changes-to-the-devexpress-asp-net-subscription.aspx</id>
    <title type="text">Upcoming Changes to the DevExpress ASP.NET Subscription</title>
    <published>2017-05-15T13:24:00Z</published>
    <updated>2026-06-09T00:33:58Z</updated>
    <author>
      <name>Ray Navasarkian (DevExpress)</name>
    </author>
    <link rel="alternate" href="https://community.devexpress.com/Blogs/thinking/archive/2017/05/15/upcoming-changes-to-the-devexpress-asp-net-subscription.aspx" />
    <category term="ASP.NET" scheme="https://community.devexpress.com/Tags/ASP.NET" />
    <category term="Bootstrap" scheme="https://community.devexpress.com/Tags/Bootstrap" />
    <category term="DevExtreme" scheme="https://community.devexpress.com/Tags/DevExtreme" />
    <category term="mvc" scheme="https://community.devexpress.com/Tags/mvc" />
    <category term="v17.1" scheme="https://community.devexpress.com/Tags/v17.1" />
    <content type="html">&lt;div&gt;We are days away from the official release of v17.1. As part of this update, we&amp;#39;ve made a series of changes to our product SKUs...one involves our &lt;a href="https://www.devexpress.com/subscriptions/universal.xml" target="_blank"&gt;Universal Subscription&lt;/a&gt; and the following describes changes we&amp;#39;ll make to our &lt;a href="https://www.devexpress.com/subscriptions/asp/" target="_blank"&gt;ASP.NET Subscription&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Before I start, let me emphatically state the following: If you are an active ASP.NET Subscriber, you will &lt;b&gt;not &lt;/b&gt;experience a price increase. Your renewal costs will remain the same. If you are happy with our ASP.NET Subscription, you can continue to renew it at the price point you&amp;#39;ve come to expect from DevExpress&amp;nbsp;- $399.99.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;You may be asking yourself what will change if renewal&amp;nbsp;pricing will not....Well, here is a summary of what you can expect once we ship v17.1.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;New ASP.NET Bootstrap Controls and MVC Wrappers&lt;/b&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If you own an active ASP.NET Subscription at the time of official launch (v17.1), you’ll automatically receive our new ASP.NET Bootstrap Controls and HTML5 MVC Wrappers (wrappers around our DevExtreme UI widgets), free of charge.&amp;nbsp;Whether you choose to use these new product lines is entirely up to you&amp;nbsp;of course...but as long as you maintain/renew your ASP.NET subscription, we&amp;#39;ll make them available to you.&amp;nbsp;And once again, ASP.NET Subscription renewal costs will remain the same for existing (active) subscribers.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The New DevExpress ASP.NET Subscription will include DevExtreme &lt;/b&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For those of you considering a move to client-side web development, you’ll be happy to know that with v17.1, we’ll update our ASP.NET Subscription’s product mix to include DevExtreme – our HTML5-JavaScript UI widget library. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Since this is a new addition to the subscription and since it adds substantial value to the product,&amp;nbsp;we’ll&amp;nbsp;increase the price of our &amp;quot;new&amp;quot;&amp;nbsp;ASP.NET Subscription to $999.99. Needless to say, existing customers will not be left out in the cold...&amp;nbsp;&lt;/div&gt;&lt;div&gt;If you’d like to get your hands on DevExtreme (HTML5-JavaScript widgets), you can upgrade your existing ASP.NET Subscription to our &amp;quot;new&amp;quot; ASP.NET Subscription for only $100.00.&amp;nbsp; When you upgrade, your subscription’s renewal date will not be modified but the renewal price will be increased from $399.99 to $449.99.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This last point is important - the $100 upgrade will give you immediate access to DevExtreme. If you renewal date is X, it will remain X and once your subscription expires, you will be prompted to renew at&amp;nbsp;the new price point of&amp;nbsp;$449.99 (as&amp;nbsp;all of you know, renewals are entirely voluntary and do not affect&amp;nbsp;product use rights to tools you&amp;#39;ve licensed in the past).&amp;nbsp;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Upgrade Your Subscription to DevExpress Universal&lt;/b&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If you’ve considered upgrading your ASP.NET Subscription to DevExpress Universal in the past, but have hesitated due to pricing concerns,&amp;nbsp;I have some good news for you. Based on your organization’s purchase and licensing history,&amp;nbsp;I&amp;#39;ve&amp;nbsp;instructed&amp;nbsp;our Client Services&amp;nbsp;Team to&amp;nbsp;offer preferential pricing to those wishing to acquire our Universal Subscription by May 31, 2017. If this option is of interest, please do contact us so we can put together the best possible offer for your company.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;We are here and ready to help - please do call us&amp;nbsp;should you have any questions&amp;nbsp;about our ASP.NET Subscription in the post&amp;nbsp;v17.1 world.&amp;nbsp;DevExpress Client Services can be reached via email at&amp;nbsp;clientservices@devexpress.com or by phone at +1 (818) 844 3383. &lt;br&gt;&lt;/div&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://community.devexpress.com/Blogs/thinking/archive/2017/05/09/winforms-and-wpf-diagram-control-pan-tool-and-more-coming-soon-in-v17-1.aspx</id>
    <title type="text">WinForms and WPF Diagram Control - Pan Tool and More  (Coming soon in v17.1)</title>
    <published>2017-05-09T13:20:00Z</published>
    <updated>2026-06-09T00:33:58Z</updated>
    <author>
      <name>Ray Navasarkian (DevExpress)</name>
    </author>
    <link rel="alternate" href="https://community.devexpress.com/Blogs/thinking/archive/2017/05/09/winforms-and-wpf-diagram-control-pan-tool-and-more-coming-soon-in-v17-1.aspx" />
    <category term="Diagram" scheme="https://community.devexpress.com/Tags/Diagram" />
    <category term="org chart" scheme="https://community.devexpress.com/Tags/org+chart" />
    <category term="Pan Tool" scheme="https://community.devexpress.com/Tags/Pan+Tool" />
    <category term="v17.1" scheme="https://community.devexpress.com/Tags/v17.1" />
    <category term="WinForms" scheme="https://community.devexpress.com/Tags/WinForms" />
    <category term="Workflows" scheme="https://community.devexpress.com/Tags/Workflows" />
    <category term="WPF" scheme="https://community.devexpress.com/Tags/WPF" />
    <content type="html">&lt;p&gt;Our upcoming release will include two new&amp;nbsp;features for both our &lt;a href="https://www.devexpress.com/products/net/controls/winforms/diagrams/" target="_blank"&gt;WinForms&amp;nbsp;&lt;/a&gt;&lt;span&gt;&lt;a href="https://www.devexpress.com/products/net/controls/winforms/diagrams/" target="_blank"&gt;Diagram&lt;/a&gt;&lt;/span&gt;&amp;nbsp;and &lt;a href="https://www.devexpress.com/products/net/controls/wpf/diagrams/" target="_blank"&gt;WPF Diagram&lt;/a&gt; Controls. &lt;/p&gt;

&lt;h3&gt;Pan Tool&lt;/h3&gt;

&lt;p&gt;As you can see in the animation below, the Diagram&amp;#39;s new Pan Tool allows you and your end-users to&amp;nbsp;move or &amp;quot;pan&amp;quot; a diagram in any direction. &lt;/p&gt;

&lt;p&gt;&lt;video width="640" height="360" style="background:transparent url(&amp;#39;https://www.devexpress.com/Subscriptions/i/17.1/wpf-diagram-pan-tool-thumb.png&amp;#39;) no-repeat 0 0;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;" preload="none" controls="yes" poster="data:image/png;base64,"&gt;&lt;source src="https://www.devexpress.com/subscriptions/i/17.1/winforms-diagrams-pan-tool.webm" type="video/webm"&gt;&lt;source src="https://www.devexpress.com/subscriptions/i/17.1/winforms-diagrams-pan-tool.mp4" type="video/mp4"&gt;&lt;/video&gt;&lt;/p&gt;

&lt;h3&gt;Display or Hide Subordinate Shapes&lt;/h3&gt;

&lt;p&gt;Whether constructing workflows, organization charts or anything in between, this new feature&amp;nbsp;should help improve app usability and overall&amp;nbsp;presentation/organization of complex diagrams.&lt;/p&gt;

&lt;p&gt;&lt;video width="640" height="360" style="background:transparent url(&amp;#39;https://community.devexpress.com/blogs/thinking/171/winforms-diagram-org-chart-expand-collapse.png&amp;#39;) no-repeat 0 0;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;" preload="none" controls="yes" poster="data:image/png;base64,"&gt;&lt;source src="https://community.devexpress.com/blogs/thinking/171/winforms-diagram-org-chart-expand-collapse.mp4" type="video/mp4"&gt;&lt;/video&gt;&lt;/p&gt;&lt;p&gt;This short animation helps demonstrate some of the options available to you, including the ability&amp;nbsp;to control the collapse button&amp;#39;s alignment and its position.&lt;br&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>https://community.devexpress.com/Blogs/thinking/archive/2017/05/08/asp-net-spreadsheet-cell-comments-max-row-and-column-count-and-more-coming-soon-in-v17-1.aspx</id>
    <title type="text">ASP.NET Spreadsheet - Cell Comments, Max Row and Column Count and More (Coming soon in v17.1)</title>
    <published>2017-05-08T10:17:00Z</published>
    <updated>2026-06-09T00:33:58Z</updated>
    <author>
      <name>Ray Navasarkian (DevExpress)</name>
    </author>
    <link rel="alternate" href="https://community.devexpress.com/Blogs/thinking/archive/2017/05/08/asp-net-spreadsheet-cell-comments-max-row-and-column-count-and-more-coming-soon-in-v17-1.aspx" />
    <category term="ASP.NET" scheme="https://community.devexpress.com/Tags/ASP.NET" />
    <category term="Cells" scheme="https://community.devexpress.com/Tags/Cells" />
    <category term="Comments" scheme="https://community.devexpress.com/Tags/Comments" />
    <category term="Max Column" scheme="https://community.devexpress.com/Tags/Max+Column" />
    <category term="Max Row" scheme="https://community.devexpress.com/Tags/Max+Row" />
    <category term="mvc" scheme="https://community.devexpress.com/Tags/mvc" />
    <category term="SpreadSheet" scheme="https://community.devexpress.com/Tags/SpreadSheet" />
    <category term="v17.1" scheme="https://community.devexpress.com/Tags/v17.1" />
    <content type="html">&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;We&amp;#39;ve got a few exciting new features to announce in the upcoming release of our &lt;a href="https://www.devexpress.com/products/net/controls/asp/spreadsheet/" target="_blank"&gt;ASP.NET Web Forms and MVC Spreadsheet&lt;/a&gt;&amp;nbsp;controls&amp;nbsp;- these include support for cell comments, max row/max column count and the ability to customize the Spreadsheet&amp;#39;s context menu.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;b&gt;&lt;/b&gt;&lt;span style="font-size:18pt;"&gt;&lt;/span&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:18pt;background-color:#ffffff;"&gt;&lt;b&gt;Worksheet&amp;nbsp;Comments - Annotations&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;As you would expect, this new feature allows you and your users to annotate ASP.NET and MVC Worksheets. Comments are displayed within a floating box that is anchored to a cell. You can add new comments, edit, hide or delete existing comments, move and resize the comment box as necessary.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;img alt="ASP.NET &amp;amp; MVC Spreadsheet - Worksheet Comments" src="https://www.devexpress.com/Subscriptions/i/17.1/asp-spreadsheet-comments.png"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;New comments can be inserted or existing comments modified via the following methods:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="background-color:#ffffff;"&gt;Ribbon UI - by using the commands located&amp;nbsp;within the Comments group of the Review tab.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color:#ffffff;"&gt;Context (Popup) Menu&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;Additionally,&amp;nbsp;users can resize a comment box&amp;nbsp;or move it to a new location by using the comment&amp;#39;s sizing handles.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;b&gt;&lt;span style="font-size:18pt;"&gt;Max Row - Max Column Count&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;With this release, you can specify the maximum number of rows and columns displayed within&amp;nbsp;our ASP.NET &amp;amp; MVC Spreadsheet Control.&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;img alt="ASP.NET MVC Spreadsheet Max Row/Max Column Count" src="https://www.devexpress.com/Subscriptions/i/17.1/asp-spreadsheet-max-row-col-count.png"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;To control row/column visibility, simply use&amp;nbsp;our new &lt;a href="https://documentation.devexpress.com/AspNet/DevExpressWebASPxSpreadsheetWorksheetDisplayArea_SetSizetopic(HbXiGQ).aspx"&gt;WorksheetDisplayArea.SetSize&lt;/a&gt; method.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:18pt;background-color:#ffffff;"&gt;&lt;b&gt;Context (Popup) Menu&amp;nbsp;Customization&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;With this release, you can handle a new client-side event and customize our ASP.NET Spreadsheet&amp;#39;s context menu (insert new menu items, remove or disable existing items). Event parameters allow you to identify the worksheet element (a cell, row or column header, chart or picture) for which the context menu is invoked and prevent the menu from being displayed.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;Should you have any questions on any of these features, please comment below - we&amp;#39;ll be happy to follow up.&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&amp;nbsp;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://community.devexpress.com/Blogs/thinking/archive/2017/05/04/asp-net-rich-text-editor-floating-objects-coming-soon-in-v17-1.aspx</id>
    <title type="text">ASP.NET Rich Text Editor - Floating Objects (Coming soon in v17.1)</title>
    <published>2017-05-04T14:31:00Z</published>
    <updated>2026-06-09T00:33:58Z</updated>
    <author>
      <name>Ray Navasarkian (DevExpress)</name>
    </author>
    <link rel="alternate" href="https://community.devexpress.com/Blogs/thinking/archive/2017/05/04/asp-net-rich-text-editor-floating-objects-coming-soon-in-v17-1.aspx" />
    <category term="ASP.NET" scheme="https://community.devexpress.com/Tags/ASP.NET" />
    <category term="mvc" scheme="https://community.devexpress.com/Tags/mvc" />
    <category term="Rich Edit Control" scheme="https://community.devexpress.com/Tags/Rich+Edit+Control" />
    <category term="RTF" scheme="https://community.devexpress.com/Tags/RTF" />
    <category term="v17.1" scheme="https://community.devexpress.com/Tags/v17.1" />
    <category term="webforms" scheme="https://community.devexpress.com/Tags/webforms" />
    <category term="Word Processing" scheme="https://community.devexpress.com/Tags/Word+Processing" />
    <content type="html">&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;The upcoming release of our &lt;a href="https://www.devexpress.com/products/net/controls/asp/word_processing_rtf/" target="_blank"&gt;ASP.NET Rich Text Editor&lt;/a&gt; will include support for Floating Objects. With this feature, your end-users can insert pictures and text boxes within their documents with ease. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;img alt="ASP.NET Rich Text Editor - Word Processing Floating Objects" src="https://www.devexpress.com/Subscriptions/i/17.1/asp-richedit-floating-objects.png"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;As you might expect, our ASP.NET WebForms and ASP.NET MVC Rich Text Editor allows end-users to freely position, scale and rotate floating objects. Whether used for images or as a text box, users can modify the object&amp;#39;s characteristics via an integrated context (popup) menu or a Ribbon context tab. A built-in Floating Object dialog window is also available for customization. &lt;br&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;img alt="ASP.NET Rich Text Editor - Floating Object Layout" src="https://www.devexpress.com/Subscriptions/i/17.1/asp-richedit-floating-object-layout-options.png"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;And yes, our ASP.NET Rich Text Editor ships with a comprehensive client API so you can&amp;nbsp;manage floating objects programmatically.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;We&amp;#39;d love to hear your thoughts on this new feature and learn more about how you&amp;#39;re using our Rich Text Editor within your ASP.NET or MVC web app.&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://community.devexpress.com/Blogs/thinking/archive/2017/05/04/winforms-treelist-improved-performance-and-api-coming-soon-in-v17-1.aspx</id>
    <title type="text">WinForms TreeList - Improved Performance and API (Coming soon in v17.1)</title>
    <published>2017-05-04T10:17:00Z</published>
    <updated>2026-06-09T00:33:58Z</updated>
    <author>
      <name>Ray Navasarkian (DevExpress)</name>
    </author>
    <link rel="alternate" href="https://community.devexpress.com/Blogs/thinking/archive/2017/05/04/winforms-treelist-improved-performance-and-api-coming-soon-in-v17-1.aspx" />
    <category term="API" scheme="https://community.devexpress.com/Tags/API" />
    <category term="performance" scheme="https://community.devexpress.com/Tags/performance" />
    <category term="treelist" scheme="https://community.devexpress.com/Tags/treelist" />
    <category term="v17.1" scheme="https://community.devexpress.com/Tags/v17.1" />
    <category term="WinForms" scheme="https://community.devexpress.com/Tags/WinForms" />
    <content type="html">&lt;p&gt;I wanted to share some of the performance and API improvements we&amp;#39;ve made to the DevExpress &lt;a href="https://www.devexpress.com/products/net/controls/winforms/tree_list/" target="_blank"&gt;WinForms TreeList Control&lt;/a&gt; in our v17.1 development cycle. If you&amp;#39;re not familiar with this product, you can think of it as a treeview and listview hybrid...The component is designed to display self-referenced hierarchies and render it as a traditional tree or a grid.&lt;/p&gt;

&lt;p&gt;Before I begin, let me offer the following...If you&amp;#39;re evaluating this product and would like to test it against competing products, we&amp;#39;d be more than happy to provide the sample project used to generate these test results. I think you&amp;#39;ll be pleasantly surprised as to how&amp;nbsp;fast our WinForms TreeList executes the functions listed below. &lt;/p&gt;

&lt;p&gt;Though we are not finished with all the optimizations we hope to introduce this year, I want to assure you that our goal is to improve the TreeList to such a degree that it&amp;#39;s on par with our WinForms Grid from a performance perspective.&lt;/p&gt;

&lt;h3&gt;Performance&lt;/h3&gt;

&lt;p&gt;The following table describes the performance improvements shipping inside v17.1. &lt;/p&gt;

    &lt;table&gt;
        
            &lt;tr&gt;
                &lt;td&gt;
                    Time (ms)
                &lt;/td&gt;
                &lt;td&gt;
                    DevExpress TreeList v16.2
                &lt;/td&gt;
                &lt;td&gt;
                    DevExpress TreeList v17.1
                &lt;/td&gt;
                &lt;td&gt;
                    DevExpress WinForms Grid
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td colspan="4"&gt;
                    &lt;b&gt;Sorting by one or more columns&lt;/b&gt;
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    Flat list
                &lt;/td&gt;
                &lt;td&gt;
                    116
                &lt;/td&gt;
                &lt;td&gt;
                    47
                &lt;/td&gt;
                &lt;td&gt;
                    14
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    Self-referenced hierarchy
                &lt;/td&gt;
                &lt;td&gt;
                    58
                &lt;/td&gt;
                &lt;td&gt;
                    30
                &lt;/td&gt;
                &lt;td&gt;
                    n/a
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td colspan="4"&gt;
                    &lt;b&gt;Filtering by simple or complex criteria&lt;/b&gt;
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    Flat list
                &lt;/td&gt;
                &lt;td&gt;
                    46
                &lt;/td&gt;
                &lt;td&gt;
                    31
                &lt;/td&gt;
                &lt;td&gt;
                    12
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    Self-referenced hierarchy
                &lt;/td&gt;
                &lt;td&gt;
                    52
                &lt;/td&gt;
                &lt;td&gt;
                    36
                &lt;/td&gt;
                &lt;td&gt;
                    n/a
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td colspan="4"&gt;
                    &lt;b&gt;Searching (against a single column/against all columns)&lt;/b&gt;
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    Flat list
                &lt;/td&gt;
                &lt;td&gt;
                    116/444
                &lt;/td&gt;
                &lt;td&gt;
                    98/321
                &lt;/td&gt;
                &lt;td&gt;
                    92/173
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    Self-referenced hierarchy
                &lt;/td&gt;
                &lt;td&gt;
                    119/457
                &lt;/td&gt;
                &lt;td&gt;
                    100/332
                &lt;/td&gt;
                &lt;td&gt;
                    n/a
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td colspan="4"&gt;
                    &lt;b&gt;Loading from data source (10k/100k records)&lt;/b&gt;
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    Flat list
                &lt;/td&gt;
                &lt;td&gt;
                    36/650
                &lt;/td&gt;
                &lt;td&gt;
                    34/466
                &lt;/td&gt;
                &lt;td&gt;
                    5/10
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    Bound hierarchy
                &lt;/td&gt;
                &lt;td&gt;
                    81/2005
                &lt;/td&gt;
                &lt;td&gt;
                    79/1703
                &lt;/td&gt;
                &lt;td&gt;
                    n/a
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    Unbound hierarchy
                &lt;/td&gt;
                &lt;td&gt;
                    854/minutes
                &lt;/td&gt;
                &lt;td&gt;
                    103/4182
                &lt;/td&gt;
                &lt;td&gt;
                    n/a
                &lt;/td&gt;
            &lt;/tr&gt;
        
    &lt;/table&gt;

&lt;h3&gt;API&lt;/h3&gt;

&lt;p&gt;In this release, we&amp;#39;ve updated the Tree List&amp;#39;s API so that it is more consistent and&amp;nbsp;in-line with our WinForms Grid.&amp;nbsp;These changes address&amp;nbsp;common data operations such as&amp;nbsp;obtaining and&amp;nbsp;setting cell values, selection, sorting and filtering, formatting and hit testing. Our&amp;nbsp;new API also includes a number of tree-specific features including a LINQ-friendly node iterator:&lt;/p&gt;

&lt;pre class="brush: csharp"&gt;treeList.NodesIterator.Do(node =&amp;gt;
{
    if((State)node[&amp;quot;State&amp;quot;] == State.Inactive))
        node.Expanded = false;
});
int count = treeList1.NodesIterator.Visible
   .Where(node =&amp;gt; (decimal)node[&amp;quot;Discount&amp;quot;] &amp;gt; 0).Count();
&lt;/pre&gt;

&lt;p&gt;By extending the Tree List&amp;#39;s API, we&amp;#39;ve been able to improve the product&amp;#39;s core functionality and expect to evolve it further in coming release cycles. For instance, the filter related API changes introduced in v17.1 allowed us to incorporate Excel-inspired Filtering and the Auto-Filter Row....and helped improve core capabilities such as the availability of predefined filters when using Excel-inspired filter dropdowns.&lt;/p&gt;

&lt;p&gt;&lt;img alt="WinForms TreeList Filtering" src="https://community.devexpress.com/blogs/thinking/171/WinForms-TreeList-v171-Excel-Filter.png"&gt;&lt;/p&gt;

&lt;p&gt;As always, we welcome your comments and feedback. Tell us how you&amp;#39;re currently using our WinForms TreeList Control.&lt;/p&gt;</content>
  </entry>
</feed>