<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Intersoft Solutions Corporate Blog &#187; 2010 R2</title>
	<atom:link href="http://blog.intersoftsolutions.com/category/2010-r2/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.intersoftsolutions.com</link>
	<description>All about development productivity – ASP.NET, Silverlight, WPF, iOS, Android, Windows Phone, Windows 8</description>
	<lastBuildDate>Sat, 21 Apr 2018 06:57:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.33</generator>
	<item>
		<title>Use UXSliderBar to Simplify Data Entry</title>
		<link>http://blog.intersoftsolutions.com/2011/03/use-uxsliderbar-to-simplify-data-entry/</link>
		<comments>http://blog.intersoftsolutions.com/2011/03/use-uxsliderbar-to-simplify-data-entry/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 19:17:40 +0000</pubDate>
		<dc:creator><![CDATA[martinlie]]></dc:creator>
				<category><![CDATA[2010 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[UXSliderBar]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=2233</guid>
		<description><![CDATA[One of the powerful controls introduced in ClientUI 4 is UXSliderBar, an input control that enables users to select a value or range of values by sliding the UXThumb along the slider track through drag and drop operation in the thumb. In this post, I [...]]]></description>
				<content:encoded><![CDATA[<img width="507" height="48" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/UXSliderBar11.png" class="attachment-post-thumbnail wp-post-image" alt="" style="float:right; margin:0 0 10px 10px;" /><p>One of the powerful controls introduced in ClientUI 4 is <strong>UXSliderBar</strong>, an input control that enables users to select a value or range of values by sliding the UXThumb along the slider track through drag and drop operation in the thumb.</p>
<p>In this post, I will share how to use UXSliderBar to create a simple application to input grade for student.</p>
<h2>Configuring the UXSliderBar</h2>
<p>The scenario that I want to achieve is, create a sliderbar and set the value from 0 to 100. When user selects a value in the slider (let&#8217;s say 60, 85), the grade (A, B, C, D) will be displayed in the TextBox based on the selected value.</p>
<p>First of all, drag a UXSliderBar control from Visual Studio Toolbox. You need to configure its basic settings, such as <strong>Maximum</strong>, <strong>Minimum</strong>, <strong>SmallChange</strong>, and <strong>LargeChange</strong>.</p>
<p>Minimum and Maximum property indicates the possible lowet and highest value in the slider bar. SmallChange and LargeChange indicates the value to be added or subtracted from the value of UXSliderBar.</p><pre class="crayon-plain-tag">&lt;Intersoft:UXSliderBar Minimum="0" Maximum="100" LargeChange="10"
                       SmallChange="1" TickPlacement="BottomRight"
                       HandlesVisibility="Visible"/&gt;</pre><p><img src="http://www.intersoftpt.com/tdn/downloads/UXSliderBar1.png" alt="UXSliderBar1" /></p>
<p>As you can see, the value becomes crowded because I want to display the value range from 0 to 100. This is where Ticks property is very useful. It is used to represent the position of the tick bar items displayed in the tick bar.</p>
<p>I’m going to set the ticks to 0, 55, 65, 75, 85. Therefore, the UXSliderBar will display something like following:</p><pre class="crayon-plain-tag">&lt;Intersoft:UXSliderBar Minimum="0" Maximum="100" LargeChange="1"
                       SmallChange="0.1" TickPlacement="BottomRight"
                       HandlesVisibility="Visible" Ticks="0 55 65 75 85"/&gt;</pre><p><img src="http://www.intersoftpt.com/tdn/downloads/UXSliderBar2.png" alt="UXSliderBar2" /></p>
<p>In the case where the ticks are only displayed in specific positions, it is difficult to select a specific value, for example 79, in the slider bar. Using <strong>AutoTooltipVisibility </strong>property, you can display a tooltip containing the selected value when you drag the thumb. In addition, <strong>AutoTooltipFormat </strong>is used to set the format string applied to the content of the tooltip.</p><pre class="crayon-plain-tag">&lt;Intersoft:UXSliderBar Minimum="0" Maximum="100" LargeChange="1"
                       SmallChange="1" TickPlacement="BottomRight"
                       HandlesVisibility="Visible" Ticks="0 55 65 75 85"
                       AutoTooltipVisibility="Visible"
                       AutoTooltipFormat="F0"/&gt;</pre><p><img src="http://www.intersoftpt.com/tdn/downloads/UXSliderBar3.png" alt="UXSliderBar3" /></p>
<p>Initially, when you bind the value from UXSliderBar into the Textbox control, it will only display the number. In this case, I want to show the Grade instead. Means that I need to add a converter in order to achieve this scenario.</p>
<h2>Creating Grade Converter</h2>
<p>In order to show the grade in Textbox, we need to bind slider’s value to Textbox and use data conversion to convert the grade into string.</p>
<p>Here is the code on how to bind the slider’s value to Textbox.</p><pre class="crayon-plain-tag">&lt;TextBox Text="{Binding Value, ElementName=UXSliderBar1}" /&gt;</pre><p>Now, you have successfully bound slider’s value to Textbox. But, in order to convert the number into string, you need to add a converter.</p>
<p>For more information on how to use a converter, please refer to <a title="Data Binding Overview" href="http://www.intersoftpt.com/Support/ClientUI/Documentation/ClientUIControls.html#url=Databinding.html" target="_blank">Data Binding Overview</a> on Data Conversion topic.</p>
<p>I create a class called <strong>GradeConverter.cs</strong>. In this class, I will create a converter by creating a class that inherits from IValueConverter and put a validation to convert the grade value into a string.</p>
<p>The GradeConverter.cs looks like the following:</p><pre class="crayon-plain-tag">using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Data;

namespace ClientUIMVVMBlogApp.Converters
{
    public class GradeConverter : IValueConverter
    {
        public object Convert(object value, Type targetType,
                              object parameter,
                              System.Globalization.CultureInfo culture)
        {
            Double grade = (Double)value;
            String result = value.ToString();

            if (grade &lt; 55)
            {
                result = "E";
            }

            else if (grade &gt;= 55 &amp;&amp; grade &lt; 65)
            {
                result = "D";
            }

            else if (grade &gt;= 65 &amp;&amp; grade &lt; 75)
            {
                result = "C";
            }

            else if (grade &gt;= 75 &amp;&amp; grade &lt; 85)
            {
                result = "B";
            }

            else
            {
                result = "A";
            }
            return result;
        }

        public object ConvertBack(object value, Type targetType,
                                  object parameter,
                                  System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}</pre><p>Now, add the converter to the Textbox control that has been bound to the slider’s value:</p><pre class="crayon-plain-tag">&lt;TextBox Text="{Binding Value, ElementName=UXSliderBar1,
                Converter={StaticResource GradeConverter}}"/&gt;</pre><p>There are some properties that you can optionally add to the UXSliderBar such ValueRangeVisibility and IsMoveToPointEnabled. <strong>ValueRangeVisibility </strong>is used to get/set whether the value range visual element is visible. You can see the value range visual element is in blue color.<br />
<img src="http://www.intersoftpt.com/tdn/downloads/UXSliderBar2.png" alt="" /></p>
<p><strong>IsMoveToPointEnabled </strong>is used to get/set a value that indicates whether the UXThumb moves immediately to the location of the mouse click that occurs while the mouse pointer pauses on the slider bar track.</p>
<p>Hence, the final code will look like following:</p><pre class="crayon-plain-tag">&lt;StackPanel&gt;
   &lt;Intersoft:FieldLabel&gt;
      &lt;Intersoft:FieldLabel.Header&gt;
         &lt;TextBlock Text="Name :"/&gt;
      &lt;/Intersoft:FieldLabel.Header&gt;
      &lt;TextBox Width="200" Text="John Doe"&gt;&lt;/TextBox&gt;
   &lt;/Intersoft:FieldLabel&gt;
   &lt;Intersoft:FieldLabel&gt;
      &lt;Intersoft:FieldLabel.Header&gt;
         &lt;TextBlock Text="Grade :"/&gt;
      &lt;/Intersoft:FieldLabel.Header&gt;
      &lt;StackPanel Orientation="Horizontal"&gt;
         &lt;Intersoft:UXSliderBar Name="UXSliderBar1" Width="517"
                                Minimum="0" Maximum="100" LargeChange="1"
                                SmallChange="0.1" TickPlacement="BottomRight"
                                HandlesVisibility="Visible"
                                ValueRangeVisibility="Visible" Value="55"
                                AutoTooltipVisibility="Visible"
                                AutoTooltipFormat="F0" Ticks="0 55 65 75 85"
                                IsMoveToPointEnabled="True" Height="50" /&gt;
         &lt;TextBox Height="27" Width="33" HorizontalAlignment="Left"
                  Text="{Binding Value, ElementName=UXSliderBar1,
                         Converter={StaticResource GradeConverter}}"/&gt;
      &lt;/StackPanel&gt;
   &lt;/Intersoft:FieldLabel&gt;
&lt;/StackPanel&gt;</pre><p>When you run the project, the final results will look like the following illustration.<br />
<img src="http://www.intersoftpt.com/tdn/downloads/UXSliderBar4.png" alt="UXSliderBar control" /></p>
<p>When you drag the slider bar to determine the value, it will automatically convert the value into string, and place the grade into the Textbox.</p>
<h2>Summary</h2>
<p>In this post, you have learned how to initially create UXSliderBar and configure its basic settings. You also have been guided on how to create data conversion and bind it to a Textbox control.</p>
<p>For more information about the scenario, you can download the sample <a title="Reference sample for UXSliderBar" href="http://www.intersoftpt.com/tdn/downloads/ClientUIMVVMBlogApp.zip">here</a>. To see all available features, see <a title="UXSliderBar Overview" href="http://www.intersoftpt.com/Support/ClientUI/Documentation/#url=UXSliderBar.html" target="_blank">UXSliderBar Overview</a>. If you have questions or feedback about UXSliderBar or other ClientUI controls, please feel free to post them to our <a title="Intersoft Community" href="http://www.intersoftpt.com/Community" target="_blank">Community Forum</a>.</p>
<p>Regards,</p>
<p>-Martin-</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2011/03/use-uxsliderbar-to-simplify-data-entry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced Currency Input Control for Silverlight &amp; WPF</title>
		<link>http://blog.intersoftsolutions.com/2011/02/advanced-input-controls-uxcurrencyeditor/</link>
		<comments>http://blog.intersoftsolutions.com/2011/02/advanced-input-controls-uxcurrencyeditor/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 08:06:00 +0000</pubDate>
		<dc:creator><![CDATA[glayaar]]></dc:creator>
				<category><![CDATA[2010 R2]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[UXCurrencyEditor]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=2101</guid>
		<description><![CDATA[One of the new controls introduced in ClientUI 4 is UXCurrencyEditor, an advanced input control specifically designed for currency and numerical input with support for .NET standard and custom numeric format. In this post, I will share a number of useful features in the UXCurrencyEditor [...]]]></description>
				<content:encoded><![CDATA[<img width="209" height="30" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/uxcurredt11.png" class="attachment-post-thumbnail wp-post-image" alt="" style="float:right; margin:0 0 10px 10px;" /><p>One of the new controls introduced in ClientUI 4 is UXCurrencyEditor, an advanced input control specifically designed for currency and numerical input with support for .NET standard and custom numeric format.</p>
<p>In this post, I will share a number of useful features in the UXCurrencyEditor control, and how it can be useful in your Silverlight and WPF business applications.</p>
<h2>Introducing UXCurrencyEditor</h2>
<p>Often times, users are required to input numerical data such as currency, item quantity, or percentage value. Some of these scenarios also require different text between edit and display. In ClientUI 4, Intersoft has provided a versatile currency input control named UXCurrencyEditor.</p>
<p>Let’s take a quick example of a common business form where the currency value shows a currency sign in the display mode, but exclude the sign in the edit mode. For instance, the value of 25000 will have the following results.</p>
<table border="0">
<tbody>
<tr>
<th align="left">EditText</th>
<th>25,000.00</th>
</tr>
<tr>
<th>DisplayText</th>
<th>$25,000.00</th>
</tr>
</tbody>
</table>
<p>This could be achieved using the supported patterns in the provided <strong>EditMask</strong> and <strong>DisplayMask</strong> property. These patterns conform to the .NET standard and custom numeric format. Some patterns are only suitable for <strong>DisplayMask</strong> and have been noted in the list below.</p>
<p>The following table lists the supported standard and numeric pattern:</p>
<table>
<thead>
<tr>
<th colspan="3" align="center">Standard Format</th>
</tr>
</thead>
<thead>
<tr>
<th>Valid EditMask</th>
<th>Format Specifier</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>V</td>
<td>C, c</td>
<td>Currency          <br />A currency value.</td>
</tr>
<tr>
<td>V</td>
<td>D, d</td>
<td>Decimal          <br />Integer digits with optional negative sign.</td>
</tr>
<tr>
<td>X</td>
<td>E, e</td>
<td>Exponential (scientific)          <br />Exponential notation.</td>
</tr>
<tr>
<td>V</td>
<td>F, f</td>
<td>Fixed-point          <br />Integral and decimal digits with optional negative sign.</td>
</tr>
<tr>
<td>X</td>
<td>G, g</td>
<td>General          <br />The most compact of either fixed-point or scientific notation.</td>
</tr>
<tr>
<td>V</td>
<td>N, n</td>
<td>Number          <br />Integral and decimal digits, group separators, and a decimal separator with optional negative sign.</td>
</tr>
<tr>
<td>V</td>
<td>P, p</td>
<td>Percent          <br />Number multiplied by 100 and displayed with a percent symbol.</td>
</tr>
<tr>
<td>X</td>
<td>R, r</td>
<td>Round-trip          <br />A string that can round-trip to an identical number.</td>
</tr>
<tr>
<td>X</td>
<td>X, x</td>
<td>Hexadecimal          <br />A hexadecimal string.</td>
</tr>
<tr>
<td colspan="3"><em>*Currently UXCurrencyEditor standard format will not accept custom group sizes. The group sizes will always be 3.</em></td>
</tr>
</tbody>
<thead>
<tr>
<th colspan="3" align="center">Custom Format</th>
</tr>
</thead>
<thead>
<tr>
<th>Valid EditMask</th>
<th>Format Specifier</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>V</td>
<td>0</td>
<td>Zero placeholder          <br />Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.</td>
</tr>
<tr>
<td>V</td>
<td>#</td>
<td>Digit placeholder          <br />Replaces the pound sign with the corresponding digit if one is present; otherwise, no digit appears in the result string.</td>
</tr>
<tr>
<td>V</td>
<td>.</td>
<td>Decimal point          <br />Determines the location of the decimal separator in the result string.</td>
</tr>
<tr>
<td>V</td>
<td>,</td>
<td>Group separator and number scaling          <br />Replaces the pound sign with the corresponding digit if one is present; otherwise, no digit appears in the result string.</td>
</tr>
<tr>
<td>V</td>
<td>%</td>
<td>Percentage placeholder          <br />Multiplies a number by 100 and inserts a localized percentage symbol in the result string.</td>
</tr>
<tr>
<td>X</td>
<td>E0, E+0, E-0, e0, e+0, e-0</td>
<td>Exponential notation          <br />If followed by at least one 0 (zero), formats the result using exponential notation. The case of &quot;E&quot; or &quot;e&quot; indicates the case of the exponent symbol in the result string. The number of zeros following the &quot;E&quot; or &quot;e&quot; character determines the minimum number of digits in the exponent. A plus sign (+) indicates that a sign character always precedes the exponent. A minus sign (-) indicates that a sign character precedes only negative exponents.</td>
</tr>
<tr>
<td>V</td>
<td></td>
<td>Escape character          <br />Causes the next character to be interpreted as a literal rather than as a custom format specifier.</td>
</tr>
<tr>
<td>V</td>
<td>&#8216;string&#8217;, &quot;string&quot;</td>
<td>Literal string delimiter          <br />Indicates that the enclosed characters should be copied to the result string unchanged.</td>
</tr>
<tr>
<td>V</td>
<td>;</td>
<td>Section separator          <br />Defines sections with separate format strings for positive, negative, and zero numbers.</td>
</tr>
</tbody>
</table>
<p>Based on the supported pattern described above, the UXCurrencyEditor control with the currency value in the earlier scenario will have the <strong>EditMask</strong> property set to “<em>#,##0.00”</em> and the <strong>DisplayMask</strong> property set to “<em>C”</em>.</p>
<p>  </p><pre class="crayon-plain-tag">&lt;Intersoft:UXCurrencyEditor EditMask=&quot;#,##0.00&quot;
                 DisplayMask=&quot;C&quot; UseEditMaskAsDisplayMask=&quot;False&quot; /&gt;</pre><p></p>
<p>As shown in the snippet code above, you need to set the <strong>UseEditMaskAsDisplayMask</strong> property to <strong>False</strong> for the <strong>DisplayMask</strong> property to take effect. </p>
<p>The <strong>Value</strong> property of the UXCurrencyEditor control represents the numerical value of the EditText. We decided to use decimal data type to hold the UXCurrencyEditor value in order to accommodate large number value commonly used in financial applications.</p>
<p>UXCurrencyEditor also allows null value which is controlled by the <strong>AllowNull</strong> property. By default this property value is set to <strong>False</strong>, hence null value is not allowed by default. When AllowNull is enabled, users can set the value to null at runtime by selecting the whole text and press the Delete key (Ctrl + A, Del).</p>
<h2>Negative Value</h2>
<p>Another important feature that we think useful in financial applications is the special handling for negative value. By default, UXCurrencyEditor shows negative value in Red foreground and appends the text with – (negative sign). You can easily change the negative format by using the pattern ; (section separator). For instances, in order to show -10000 as (10,000.00), you set the negative format to (#,##0.00). See the following example.</p>
<p><img alt="CurrencyNegativeValue" src="http://intersoftpt.files.wordpress.com/2011/02/uxcurredt1.png" /></p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXCurrencyEditor EditMask=&quot;#,##0.00;(#,##0.00)&quot; /&gt;</pre><p></p>
<h2>Spin Feature</h2>
<p>UXCurrencyEditor also supports spinning feature based on the active caret position. The Up arrow key is used to increment the value, while the down arrow key is used to decrement the value. The caret position determines the amount of value to be incremented or decremented.</p>
<table border="0">
<tbody>
<tr>
<td>5|00.00</td>
<td>increment/decrement the value by 100.</td>
</tr>
<tr>
<td>|500.00</td>
<td>increment/decrement value by 1000.</td>
</tr>
</tbody>
</table>
<h2>Localization (Culture)</h2>
<p>One of the most difficult challenges in business forms is how the input control can be customized to adapt the currency settings of the user’s culture, such as the currency sign, group separator, and the decimal point. Luckily, UXCurrencyEditor already supports such localization feature by simply setting the <strong>Culture</strong> property to desired culture string. </p>
<p>The following table shows various results of the UXCurrencyEditor using different culture.&#160; The example uses a <strong>Value</strong> of 10000 and <strong>EditMask</strong> set to “C”.</p>
<table>
<thead>
<tr>
<th>Culture</th>
<th>EditText</th>
</tr>
<tr>
<th colspan="2" align="center">CodeSnipppet</th>
</tr>
</thead>
<tbody>
<tr>
<td>en-US</td>
<td>$10,000.00</td>
</tr>
<tr>
<td colspan="2">
        <pre class="crayon-plain-tag">&lt;Intersoft:UXCurrencyEditor
		EditMask=&quot;C&quot; Culture=&quot;en-US&quot; /&gt;</pre>
      </td>
</tr>
<tr>
<td>en-GB</td>
<td>£10,000.00</td>
</tr>
<tr>
<td colspan="2">
        <pre class="crayon-plain-tag">&lt;Intersoft:UXCurrencyEditor
		EditMask=&quot;C&quot; Culture=&quot;en-GB&quot; /&gt;</pre>
      </td>
</tr>
<tr>
<td>id-ID</td>
<td>Rp10.000</td>
</tr>
<tr>
<td colspan="2">
        <pre class="crayon-plain-tag">&lt;Intersoft:UXCurrencyEditor
		EditMask=&quot;C&quot; Culture=&quot;id-ID&quot; /&gt;</pre>
      </td>
</tr>
</tbody>
</table>
<h2>Editing Behavior</h2>
<p>Although the UXCurrencyEditor is derived from UXTextBox, the editing behavior is vastly different since UXCurrencyEditor expected numerical data entry. There are several default TextBox operations which are considered invalid and ignored in the UXCurrencyEditor such as:</p>
<ul>
<li>Paste<br />
    <br />Paste is only valid if all the text are numeric. </li>
<li>Insert<br />
    <br />Only numerical value is valid. </li>
</ul>
<p>Let’s take an example of UXCurrencyEditor with <strong>EditMask</strong> #,##0.00</p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXCurrencyEditor EditMask=&quot;#,##0.00&quot; /&gt;</pre><p></p>
<table>
<thead>
<tr>
<th>EditText</th>
<th>Action</th>
<th>Result</th>
</tr>
<tr>
<th colspan="3" align="center">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>0|.00</td>
<td>Input A</td>
<td>0|.00</td>
</tr>
<tr>
<td colspan="3">Input A is ignored. No change occured, the only accepted input is numerical value.</td>
</tr>
<tr>
<td>0|.00</td>
<td>Input 3</td>
<td>3|.00</td>
</tr>
<tr>
<td colspan="3">0 is replaced by 3. Input in major number section is appended to the right and the caret position is not moved after successful insertion. If afterward user press 2 the result will be 32|.00</td>
</tr>
<tr>
<td>0.|00</td>
<td>Input 1</td>
<td>0.1|0</td>
</tr>
<tr>
<td colspan="3">0 is replaced by 1. Input in minor number section is appended to the right and the caret position is moved after successful insertion.</td>
</tr>
<tr>
<td>0.12|</td>
<td>Input 3</td>
<td>0.23|</td>
</tr>
<tr>
<td colspan="3">12 become 23. The minor number format only accept 2 number, UXCurrencyEditor append the 3 to the minor number and get the 2 latest number.</td>
</tr>
<tr>
<td>1,23|4.00</td>
<td>Pressing BackSpace</td>
<td>12|4.00</td>
</tr>
<tr>
<td colspan="3">3 is deleted, since &#8216;,&#8217; is not needed in the new value &#8216;,&#8217; is also omitted. Caret position stays in front of 4.</td>
</tr>
<tr>
<td>1,|23|4.00</td>
<td>Pressing BackSpace</td>
<td>1|4.00</td>
</tr>
<tr>
<td colspan="3">Hightligted text is deleted, &#8216;,&#8217; is omitted for the same reason as above scenario. Caret positioned at the first deleted hightlight text.</td>
</tr>
<tr>
<td>|1,234.00|</td>
<td>Pressing BackSpace</td>
<td><em>[AllowNull=True]</em> | </p>
<p><em>[AllowNull=False]</em> 0|.00</td>
</tr>
<tr>
<td colspan="3">If AllowNull is False, reset EditText to 0.00 and positioned caret at default position. Otherwise, EditText is set to empty string.</td>
</tr>
<tr>
<td>|1,234.00|</td>
<td>Pasting text 1234567</td>
<td>1,234,567|.00</td>
</tr>
<tr>
<td colspan="3">The current value will be overrided with the new value. The new value is also formatted using the EditMask. It is also valid to paste value with group separator, such as 1,234,567.</td>
</tr>
</tbody>
</table>
<h2>Summary</h2>
<p>In this post, you have learned the key features of UXCurrencyEditor. You can play around with the UXCurrencyEditor features through the properties, or try some readily designed samples <a href="http://live.clientui.com/#/UXInput/UXCurrencyEditor">here</a>. To see all available features, please see <a href="http://www.intersoftpt.com/Support/ClientUI/Documentation/UXCurrencyEditor.html">UXCurrencyEditor Overview</a>.</p>
<p>You will need the latest 2010 R2 bits which you can download it <a href="http://www.webuistudio.com/try">here</a>. If you have questions or feedback about UXMaskedInput or other ClientUI controls, please feel free to post them to our <a href="http://www.intersoftpt.com/Community">community forum</a>.</p>
<p>Regards,<br />
  <br />Glenn Layaar</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2011/02/advanced-input-controls-uxcurrencyeditor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced Masked Input Control for Silverlight &amp; WPF</title>
		<link>http://blog.intersoftsolutions.com/2011/02/advanced-masked-input-control-for-silverlight-wpf/</link>
		<comments>http://blog.intersoftsolutions.com/2011/02/advanced-masked-input-control-for-silverlight-wpf/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 02:53:59 +0000</pubDate>
		<dc:creator><![CDATA[glayaar]]></dc:creator>
				<category><![CDATA[2010 R2]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[UXMaskedInput]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=2091</guid>
		<description><![CDATA[One of the new advanced input controls introduced in ClientUI 4 is the UXMaskedInput control. The control allows patterned data input entry, such as phone number, social security number, and more. In this post, I will share a number of useful features in the UXMaskedInput [...]]]></description>
				<content:encoded><![CDATA[<img width="206" height="34" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/uxmaskedipt21.png" class="attachment-post-thumbnail wp-post-image" alt="" style="float:right; margin:0 0 10px 10px;" /><p>One of the new advanced input controls introduced in ClientUI 4 is the UXMaskedInput control. The control allows patterned data input entry, such as phone number, social security number, and more.</p>
<p>In this post, I will share a number of useful features in the UXMaskedInput control, and how it can be useful in your Silverlight and WPF business applications.</p>
<h1>Introducing UXMaskedInput</h1>
<p>In many business scenarios, users are required to entry patterned data such as phone number, customer ID, or social security number. Such scenarios require a specialized data entry control, commonly referred as masked input, in order to validate the inputted data. In the ClientUI 4, Intersoft has provided an advanced masked input control named UXMaskedInput.</p>
<p>Using the common business scenarios mentioned above, for example a phone number entry requires optional country code in parentheses followed by optional area code and the required phone number separated by dash, <em>(062)021-6601234</em>, this could be achieved by using the supported patterns in UXMaskedInput through the <strong>EditMask </strong>property. Here is a list of the supported pattern:</p>
<table>
<thead>
<tr>
<th align="center">Character</th>
<th align="center">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>Digit (0 to 9, entry required, plus [+] and minus [–] signs not allowed).</td>
</tr>
<tr>
<td>9</td>
<td>Digit or space (entry not required, plus and minus signs not allowed).</td>
</tr>
<tr>
<td>#</td>
<td>Digit or space (entry not required; spaces are displayed as blanks while in Edit mode, but blanks are removed when data is saved; plus and minus signs allowed).</td>
</tr>
<tr>
<td>L</td>
<td>Letter (A to Z, entry required).</td>
</tr>
<tr>
<td>?</td>
<td>Letter (A to Z, entry optional).</td>
</tr>
<tr>
<td>A</td>
<td>Letter or digit (entry required).</td>
</tr>
<tr>
<td>a</td>
<td>Letter or digit (entry optional).</td>
</tr>
<tr>
<td>$</td>
<td>Any character or a space (entry required).</td>
</tr>
<tr>
<td>C</td>
<td>Any character or a space (entry optional).</td>
</tr>
<tr>
<td>&lt;</td>
<td>Causes all characters to be converted to lowercase.</td>
</tr>
<tr>
<td>&gt;</td>
<td>Causes all characters to be converted to uppercase.</td>
</tr>
<tr>
<td></td>
<td>Causes the character that follows to be displayed as the literal character (for example, A is displayed as just A).</td>
</tr>
<tr>
<td colspan="2"><em>*Other characters as considered as literal. By default the <strong>EditMask</strong> is set to <strong>aaaaa</strong>.</em></td>
</tr>
</tbody>
</table>
<p>By using the patterned list, the phone number will have <strong>EditMask</strong> <em>(###)999-0000000</em>.</p><pre class="crayon-plain-tag">&lt;Intersoft:UXMaskedInput EditMask="(###)999-0000000" /&gt;</pre><p>The <strong>Value</strong> of the UXMaskedInput is determined by the <strong>IsSaveLiteral</strong> and <strong>IsSaveMask</strong> property. These properties modify the <strong>Value</strong> by keeping the literal pattern or the mask character. For example, the UXMaskInput with <strong>EditMask</strong> set to “(999)000-0000”, the possible value with combination of these properties are shown in the next table.</p>
<table>
<thead>
<tr>
<th>IsSaveLiteral</th>
<th>IsSaveMask</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>True</td>
<td>True</td>
<td>(___)555-1234</td>
</tr>
<tr>
<td>True</td>
<td>False</td>
<td>(   )555-1234</td>
</tr>
<tr>
<td>False</td>
<td>True</td>
<td>___5551234</td>
</tr>
<tr>
<td>False</td>
<td>False</td>
<td>5551234</td>
</tr>
</tbody>
</table>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXMaskedInput EditMask="(999)000-0000"
                         IsSaveLiteral="True"  IsSaveMask="True"/&gt;</pre><p>UXMaskedInput also allows null value which is controlled by the <strong>AllowNull</strong> property. By default this property value is set to <strong>False</strong>, hence null value is not allowed by default.</p>
<p>If the value is null, the UXMaskedInput shows an empty string during edit mode and display mode. By deleting the whole edit text (Ctrl + A, Del) in UXMaskedInput the value is automatically set to null, if permissible.</p>
<p>If you prefer, you can also customize how UXMaskedInput displays its text initially. There are two options available, <strong>EditMask</strong> or <strong>Value</strong>, which can be set through the <strong>DisplayMode</strong> property. The <strong>EditMask</strong> option displays the edit text, while the <strong>Value</strong> option displays the <strong>Value</strong> as detailed in the previous paragraph.</p>
<p>With the <strong>EditMask</strong> set to “(999)000-0000” and <strong>Value</strong> set to “5551234” the possible displayed text is illustrated in the following table.</p>
<table>
<thead>
<tr>
<th align="center">DisplayMode</th>
<th align="center">Displayed Text</th>
</tr>
<tr>
<th colspan="2" align="center">Snippet Code</th>
</tr>
</thead>
<tbody>
<tr>
<td>EditMask</td>
<td>(___)555-1234</td>
</tr>
<tr>
<td colspan="2">
<pre class="crayon-plain-tag">&lt;Intersoft:UXMaskedInput EditMask="(999)000-0000"
		Value="5551234"
		DisplayMode="EditMask"/&gt;</pre>
</td>
</tr>
<tr>
<td>Value</td>
<td>5551234</p>
<p><em>Assuming <strong>IsSaveLiteral</strong> and <strong>IsSaveMask</strong> is set to <strong>False</strong></em></td>
</tr>
<tr>
<td colspan="2">
</p><pre class="crayon-plain-tag">&lt;Intersoft:UXMaskedInput EditMask="(999)000-0000"
	  Value="5551234"
	  DisplayMode="Value"
	  IsSaveLiteral="False" IsSaveMask="False"/&gt;</pre><p>
</td>
</tr>
</tbody>
</table>
<h1>Custom Mask Character</h1>
<p>By default the mask character in the UXMaskedInput is an underscore character “<strong>_”</strong>. However, you can customize the mask character through the provided <strong>MaskCharacter</strong> property.</p>
<p>UXMaskedInput with custom mask character <strong>.</strong>.</p>
<p><img src="http://intersoftpt.files.wordpress.com/2011/02/uxmaskedipt2.png" alt="CustomMaskCharacter" /></p>
<h1>Editing Behavior</h1>
<p>Although the UXMaskedInput is derived from UXTextBox, the editing behavior is significantly different since UXMaskedInput expected patterned data entry. The behavior differences also mean that there is default TextBox operation which is considered invalid and will be ignored in the UXMaskedInput such as the paste action. In this case, the paste action is valid only when all the text is selected.</p>
<p>UXMaskedInput implements sophisticated editing experiences that allow end users to input data more intuitively. In the following table, I will highlight some of the unique editing behaviors implemented in the control. Let’s take an example of the masked input control with <strong>EditMask</strong> set to “999-???-000”.</p><pre class="crayon-plain-tag">&lt;Intersoft:UXMaskedInput EditMask="999-???-000" /&gt;</pre><p></p>
<table>
<thead>
<tr>
<th align="center">EditText</th>
<th align="center">Action</th>
<th align="center">Result</th>
</tr>
<tr>
<th colspan="3" align="center">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>|___-___-___</td>
<td>Input an “A” character</td>
<td>___-A|__-___</td>
</tr>
<tr>
<td colspan="3">The “A” character is inserted in the optional letter section since the digit section is optional. If the digit section is not optional, the “A” character is rejected.</td>
</tr>
<tr>
<td>123-|ABC-___</td>
<td>Pressing BackSpace</td>
<td>123|-ABC-___</td>
</tr>
<tr>
<td colspan="3">Caret position is moved no character is deleted since literal could not be deleted.</td>
</tr>
<tr>
<td>123-A|BC-___</td>
<td>Pressing BackSpace</td>
<td>123-|_BC-___</td>
</tr>
<tr>
<td colspan="3">Caret position is moved, the character A deleted, and replaced by the MaskCharacter.</td>
</tr>
<tr>
<td>12|3-AB|C-___</td>
<td>Pressing BackSpace</td>
<td>12|_-__C-___</td>
</tr>
<tr>
<td colspan="3">Inputted character is replaced by the MaskCharacter while Literal is unchanged. Caret is set on the first highlight position.</td>
</tr>
<tr>
<td>|123-ABC-456|</td>
<td>Pressing BackSpace</td>
<td><em>[AllowNull=True]</em> |&nbsp;</p>
<p><em>[AllowNull=False]</em> |___-___-___</td>
</tr>
<tr>
<td colspan="3">Deleting all the text behavior depends on the AllowNull property. If the UXMaskedInput allow null, the result is empty UXMaskedInput, otherwise all the character is replaced by the MaskCharacter except Literal.</td>
</tr>
<tr>
<td>|123-ABC-456|</td>
<td>Pasting text 789-DEF-456</td>
<td>|789-DEF-456</td>
</tr>
<tr>
<td colspan="3">If the text is a valid value (literal is allowed) the pasted text is accepted. 789DEF456 or 456 is also accepted.</td>
</tr>
</tbody>
</table>
<h1>Conclusion</h1>
<p>In this post, you have now learned the key features of UXMaskedInput. You can play around with the UXMaskedInput features through the properties, or try some readily designed samples <a href="http://live.clientui.com/#/UXInput/UXMaskedInput">here</a>. To see all available features, please see <a href="http://www.intersoftpt.com/Support/ClientUI/Documentation/UXMaskedInput.html">UXMaskedInput Overview</a>.</p>
<p>You will need the latest 2010 R2 bits which you can download it <a href="http://www.webuistudio.com/try">here</a>. If you have questions or feedback about UXMaskedInput or other ClientUI controls, feel free to post them to our <a href="http://www.intersoftpt.com/Community">community forum</a>.</p>
<p>Regards,</p>
<p>Glenn Layaar</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2011/02/advanced-masked-input-control-for-silverlight-wpf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New in ClientUI 4: Innovative Range Slider Bar Control</title>
		<link>http://blog.intersoftsolutions.com/2011/02/new-in-clientui-4-innovative-range-slider-bar-control/</link>
		<comments>http://blog.intersoftsolutions.com/2011/02/new-in-clientui-4-innovative-range-slider-bar-control/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 06:56:31 +0000</pubDate>
		<dc:creator><![CDATA[erikaa]]></dc:creator>
				<category><![CDATA[2010 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[ClientUI 2010]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[UXRangeSliderBar]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">https://intersoftpt.wordpress.com/2011/02/07/new-in-clientui-4-innovative-range-slider-bar-control/</guid>
		<description><![CDATA[As mentioned in this post, ClientUI 4 was included as part of WebUI Studio 2010 R2 released on December 2010. You can visit ClientUI product information here or read this article to see what’s new in ClientUI 4. Introducing UXRangeSliderBar UXRangeSliderBar is one of the [...]]]></description>
				<content:encoded><![CDATA[<img width="538" height="220" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/blog1_thumb3.png" class="attachment-post-thumbnail wp-post-image" alt="Blog1" style="float:right; margin:0 0 10px 10px;" /><p>As mentioned in this <a href="http://intersoftpt.wordpress.com/2010/12/30/clientui-4-for-silverlight-and-wpf-is-here">post</a>, ClientUI 4 was included as part of WebUI Studio 2010 R2 released on December 2010. You can visit ClientUI product information <a href="http://www.intersoftpt.com/ClientUI/">here</a> or read this <a href="http://www.intersoftpt.com/Support/ClientUI/Documentation/What'sNewInClientUI4.html">article</a> to see what’s new in ClientUI 4.</p>
<h2>Introducing UXRangeSliderBar</h2>
<p>UXRangeSliderBar is one of the new controls included in ClientUI 4, and can be used to select a range of values by moving two thumbs along the slider bar track area. </p>
<p>In <a href="http://intersoftpt.wordpress.com/2011/01/27/new-in-clientui-4-intuitive-slider-bar-control/">previous post</a>, I’ve described a property finder scenario where users can select property size and price range to find a list of properties. You can use UXSliderBar to easily select the property size. You can also use UXRangeSliderBar to select the price range for this property finder application. When it comes to selecting a range, usually two input boxes are needed, and you need to validate that the value of one input box shouldn’t exceed the other. Using UXRangeSliderBar, the two thumbs are carefully designed not to exceed the other, thus providing the built-in validation for a range input control. </p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/02/blog1.png"><img style="display:inline;border-width:0;" title="Blog1" border="0" alt="Blog1" src="http://intersoftpt.files.wordpress.com/2011/02/blog1_thumb.png" width="538" height="220" /></a> </p>
<p>  </p><pre class="crayon-plain-tag">&lt;StackPanel&gt;
    &lt;TextBlock FontSize=&quot;26&quot;&gt;Property Finder&lt;/TextBlock&gt;
    &lt;Intersoft:FieldLabel&gt;
        &lt;Intersoft:FieldLabel.Header&gt;
            &lt;TextBlock Width=&quot;100&quot; TextWrapping=&quot;Wrap&quot;
                       Text=&quot;Select Size (in sq ft.)&quot;&gt;&lt;/TextBlock&gt;
        &lt;/Intersoft:FieldLabel.Header&gt;
            &lt;Intersoft:UXSliderBar Width=&quot;400&quot; TickPlacement=&quot;BottomRight&quot;
                                   Minimum=&quot;500&quot; Maximum=&quot;1000&quot;
                                   LargeChange=&quot;100&quot; SmallChange=&quot;10&quot;
                                   IsMoveToPointEnabled=&quot;True&quot;
                                   Value=&quot;{Binding
                                   PropertyFinder.PropertySize,
                                   Mode=TwoWay, ValidatesOnDataErrors=True,
                                   ValidatesOnExceptions=True}&quot;/&gt;
    &lt;/Intersoft:FieldLabel&gt;
    &lt;Intersoft:FieldLabel&gt;
        &lt;Intersoft:FieldLabel.Header&gt;
            &lt;TextBlock Width=&quot;100&quot; TextWrapping=&quot;Wrap&quot;
                       Text=&quot;Select Price (in 1000 USD)&quot;&gt;&lt;/TextBlock&gt;
        &lt;/Intersoft:FieldLabel.Header&gt;
        &lt;Intersoft:UXRangeSliderBar Width=&quot;400&quot; TickPlacement=&quot;BottomRight&quot;
                                    TickFormat=&quot;C0&quot; Minimum=&quot;100&quot;
                                    Maximum=&quot;700&quot; LargeChange=&quot;100&quot;
                                    SmallChange=&quot;10&quot;
                                    SelectionStart=&quot;{Binding
                                    PropertyFinder.StartPrice,
                                    Mode=TwoWay, ValidatesOnDataErrors=True,
                                    ValidatesOnExceptions=True}&quot;
                                    SelectionEnd=&quot;{Binding
                                    PropertyFinder.EndPrice,
                                    Mode=TwoWay, ValidatesOnDataErrors=True,
                                    ValidatesOnExceptions=True}&quot;/&gt;
    &lt;/Intersoft:FieldLabel&gt;
    &lt;Button Content=&quot;Search&quot; Width=&quot;100&quot; Margin=&quot;0, 20, 0, 0&quot;&gt;&lt;/Button&gt;
&lt;/StackPanel&gt;</pre><p></p>
<p>The range of values in UXRangeSliderBar is specified using <strong>SelectionStart</strong> and <strong>SelectionEnd</strong> properties. The value of <strong>SelectionStart</strong> property is marked by the first thumb, while the value of <strong>SelectionEnd</strong> property is marked by the second thumb. To select a range of value, you can move the thumb, press the registered keyboard keys, or click the track area and handle buttons. These user interactions use the value of <strong>LargeChange</strong> and <strong>SmallChange</strong> properties specified in UXRangeSliderBar.</p>
<ul>
<li>Move the thumbs.<br />
    <br />You can change the range of values by moving the thumbs along the track area. Additionally, you can maintain the value span by pressing the Shift key while moving the thumb. In this case, both thumbs will move together. </p>
</li>
<li>Use keyboard keys.<br />
    <br />Similar to UXSliderBar, the Up, Down, Left, Right, PageUp, PageDown, Home, and End keys are already registered to UXRangeSliderBar commands. When one of these keys are pressed, UXRangeSliderBar will check the active thumb to determine whether the start or end value will be changed. For example: in the above scenario, when the first thumb is active and you press the Left key, the value of <strong>SelectionStart</strong> will be subtracted with the value of <strong>SmallChange</strong> property, which is 10. So, now the selection will start from $290 to $500. </p>
<p>When you press the Up, Down, Left, or Right keys, the value of <strong>SmallChange</strong> property will be used to change the range selection. When you press PageUp or PageDown keys, the value of <strong>LargeChange</strong> property will be used to change the range selection. </p>
<p>When you press the Home or End key, UXRangeSliderBar will not check the active thumb, but will automatically change the value of <strong>SelectionStart</strong> and <strong>SelectionEnd</strong> properties to <strong>Minimum</strong> or <strong>Maximum</strong> properties respectively. So, in the above scenario, if you press Home key, the <strong>SelectionStart</strong> will be set to $100, thus the selection will start from $100 to $500. </p>
</li>
<li>Click the track area.<br />
    <br />When the track area is clicked, the area clicked will determine whether the start or end value will be affected. When you click the pink or blue area, the value of <strong>SelectionStart</strong> will be subtracted or added with the value of <strong>LargeChange</strong> property. When you click the green or purple area, the value of <strong>SelectionEnd</strong> property will be subtracted or added with the value of <strong>LargeChange</strong> property. </p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/02/blog_range1.png"><img style="display:inline;border-width:0;" title="Blog_Range1" border="0" alt="Blog_Range1" src="http://intersoftpt.files.wordpress.com/2011/02/blog_range1_thumb.png" width="523" height="81" /></a>&#160; <br />For example: when you click on the green area, the value of <strong>SelectionEnd</strong> will be subtracted with the value of <strong>LargeChange</strong> property, which is 100, so now the selection will start from $300 to $400. </p>
</li>
<li>Click the handle buttons.<br />
    <br />By default the handle buttons are not displayed in UXRangeSliderBar. To display the handle buttons, you can set <strong>HandlesVisibility</strong> property to Visible. Two arrow-shaped buttons will be displayed at the left and right side of UXRangeSliderBar. </p>
<p>When the handle buttons are clicked, UXRangeSliderBar will check the active thumb to determine whether the start or end value will be added or subtracted with the value of <strong>SmallChange</strong> property. </p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/02/blog_range2.png"><img style="display:inline;border-width:0;" title="Blog_Range2" border="0" alt="Blog_Range2" src="http://intersoftpt.files.wordpress.com/2011/02/blog_range2_thumb.png" width="510" height="74" /></a> </p>
<p>If the second thumb is active and you press the right handle button, the value of <strong>SelectionEnd</strong> property will be added with the value of <strong>SmallChange</strong> property, which is 10, so now the selection will start from $300 to $510. </li>
</ul>
<h2>Enabling Drag Range Behavior</h2>
<p>As described above, you can maintain the value span by pressing Shift key while moving the thumb. You can do that if you want to maintain the $200,000 value span when moving the thumb. </p>
<p>Another alternative is to enable the drag range behavior using <strong>IsDragRangeEnabled</strong> property. When enabled, you can drag the track area between two thumbs and both thumbs will move together.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/02/blog_range3.png"><img style="display:inline;border-width:0;" title="Blog_Range3" border="0" alt="Blog_Range3" src="http://intersoftpt.files.wordpress.com/2011/02/blog_range3_thumb.png" width="536" height="74" /></a></p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXRangeSliderBar TickPlacement=&quot;BottomRight&quot; TickFormat=&quot;C0&quot; 
			    Minimum=&quot;100&quot; Maximum=&quot;700&quot; LargeChange=&quot;100&quot; 
			    SmallChange=&quot;10&quot; SelectionStart=&quot;{Binding 
			    PropertyFinder.StartPrice, Mode=TwoWay, 
			    ValidatesOnDataErrors=True, 
			    ValidatesOnExceptions=True}&quot; 
			    SelectionEnd=&quot;{Binding 
			    PropertyFinder.EndPrice, Mode=TwoWay, 
			    ValidatesOnDataErrors=True, 
			    ValidatesOnExceptions=True}&quot; 
			    IsDragRangeEnabled=&quot;True&quot; /&gt;</pre><p></p>
<h2>Enabling Snap to Tick Behavior</h2>
<p>You can enforce user to select only round value for the price range by enabling <strong>IsSnapToTickEnabled</strong> property. When enabled, the thumb will snap to the closest tickbar item when it is moved. If you move the first thumb to the left, it will snap to $300, $200, and $100.</p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXRangeSliderBar TickPlacement=&quot;BottomRight&quot; TickFormat=&quot;C0&quot; 
                            Minimum=&quot;100&quot; Maximum=&quot;700&quot; LargeChange=&quot;100&quot; 
                            SmallChange=&quot;10&quot; SelectionStart=&quot;{Binding 
                            PropertyFinder.StartPrice, Mode=TwoWay, 
                            ValidatesOnDataErrors=True, 
                            ValidatesOnExceptions=True}&quot;
                            SelectionEnd=&quot;{Binding PropertyFinder.EndPrice, 
                            Mode=TwoWay, ValidatesOnDataErrors=True, 
                            ValidatesOnExceptions=True}&quot;
                            IsSnapToTickEnabled=&quot;True&quot; /&gt;</pre><p></p>
<p>When you press Shift key while moving one of the thumb, both thumb will move together to maintain the value span. When snap to tick behavior is enabled, both thumbs will snap to the closest tickbar item when one of them is moved. </p>
<p>You can still enable precision selection by pressing Ctrl key. Try to move the thumb while pressing the Ctrl key. The thumb will not snap to the closest tickbar item, but moves along with the cursor position, as if this behavior is not enabled.</p>
<h2>Enabling Move to Point Behavior</h2>
<p>You can use <strong>IsMoveToPointEnabled</strong> property to enable move to point behavior where you can click on any position in the slider bar track area and the thumb will move immediately to the location of the click. You can to click at $700 directly and the second thumb will move directly to the location of the click. Let me remind you again, that the area of the click determines the thumb that will be moved. </p>
<p>If you press Shift key while clicking at $700 directly, both thumbs will move directly together and the selection will now start from $500 to $700.</p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXRangeSliderBar TickPlacement=&quot;BottomRight&quot; TickFormat=&quot;C0&quot; 
                            Minimum=&quot;100&quot; Maximum=&quot;700&quot; LargeChange=&quot;100&quot; 
                            SmallChange=&quot;10&quot; SelectionStart=&quot;{Binding 
                            PropertyFinder.StartPrice, Mode=TwoWay, 
                            ValidatesOnDataErrors=True, 
                            ValidatesOnExceptions=True}&quot;
                            SelectionEnd=&quot;{Binding 
                            PropertyFinder.EndPrice, 
                            Mode=TwoWay, ValidatesOnDataErrors=True, 
                            ValidatesOnExceptions=True}&quot;
                            IsMoveToPointEnabled=&quot;True&quot; /&gt;</pre><p></p>
<p>This behavior also works along with snap to tick behavior. So when both snap to tick and move to point behavior are enabled, you can click on any position in the track area and the thumb will snap to the closest tick bar item. </p>
<h2>Enabling Auto Tooltip</h2>
<p>While moving the thumb along the track area, you might find it difficult to determine what value you are hovering. You can display a tooltip near the thumb that contains the value of the hovered position using <strong>AutoTooltipVisibility</strong> property. You can specify <strong>AutoTooltipPosition</strong>, <strong>AutoTooltipFormat</strong>, <strong>AutoTooltipHorizontalDirection</strong>, and <strong>AutoTooltipVerticalDirection</strong> for additional configuration.</p>
<p>When you press Shift key while moving the thumb or when drag range behavior is enabled, a tooltip will be displayed near each thumb. You can know exactly that you are selecting $350 to $550 as the price range, as seen in the following shot.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/02/blog_range4.png"><img style="display:inline;border-width:0;" title="Blog_Range4" border="0" alt="Blog_Range4" src="http://intersoftpt.files.wordpress.com/2011/02/blog_range4_thumb.png" width="533" height="94" /></a> </p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXRangeSliderBar TickPlacement=&quot;BottomRight&quot; TickFormat=&quot;C0&quot; 
                            Minimum=&quot;100&quot; Maximum=&quot;700&quot; LargeChange=&quot;100&quot; 
                            SmallChange=&quot;10&quot; SelectionStart=&quot;{Binding 
                            PropertyFinder.StartPrice, Mode=TwoWay, 
                            ValidatesOnDataErrors=True, 
                            ValidatesOnExceptions=True}&quot;
                            SelectionEnd=&quot;{Binding PropertyFinder.EndPrice, 
                            Mode=TwoWay, ValidatesOnDataErrors=True, 
                            ValidatesOnExceptions=True}&quot;
                            AutoTooltipVisibility=&quot;Visible&quot; 
                            AutoTooltipFormat=&quot;C0&quot;/&gt;</pre><p></p>
<h2>Configuring Minimum and Maximum Range Span</h2>
<p>When you choose a wide price range, say from $100,000 to $700,000, it could return lots of search results. In UXRangeSliderBar, you can specify a maximum range span allowed to narrow down the search result. You will be prevented from selecting a range of values exceeding the maximum range span specified.</p>
<p>For example: if <strong>MaximumRangeSpan</strong> property is set to 300, you can only select up to $300,000 difference in UXRangeSliderBar. If the selection starts at $300, you can only move the second thumb to $600. You can’t move the second thumb to a value larger than that.</p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXRangeSliderBar TickPlacement=&quot;BottomRight&quot; TickFormat=&quot;C0&quot; 
                            Minimum=&quot;100&quot; Maximum=&quot;700&quot; LargeChange=&quot;100&quot; 
                            SmallChange=&quot;10&quot;  SelectionStart=&quot;{Binding 
                            PropertyFinder.StartPrice, Mode=TwoWay, 
                            ValidatesOnDataErrors=True, 
                            ValidatesOnExceptions=True}&quot;
                            SelectionEnd=&quot;{Binding PropertyFinder.EndPrice, 
                            Mode=TwoWay, ValidatesOnDataErrors=True, 
                            ValidatesOnExceptions=True}&quot;
                            MaximumRangeSpan=&quot;300&quot;/&gt;</pre><p></p>
<p>You can specify the minimum range span allowed using <strong>MinimumRangeSpan</strong> property. By default to allow unlimited range span selection, the <strong>MinimumRangeSpan</strong> property is set to 0 and <strong>MaximumRangeSpan</strong> property is set to NaN. </p>
<h2>Conclusion</h2>
<p>In this post, you have learned the various ways to change the range of values in UXRangeSliderBar, the behaviors related to it, the auto tooltip, and the minimum/maximum range span. </p>
<p>To try it out yourself, feel free to browse through the samples <a href="http://live.clientui.com/#/UXInput/UXSliderBar/BookingForm">here</a>. To see all available features, see <a href="http://www.intersoftpt.com/Support/ClientUI/Documentation/UXRangeSliderBar.html">UXRangeSliderBar Overview</a>. If you have questions or feedback about UXRangeSliderBar, feel free to post them to <a href="http://www.intersoftpt.com/Community/ClientUI/">our community forum</a>.</p>
<p>Cheers,<br />
  <br />Erika</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2011/02/new-in-clientui-4-innovative-range-slider-bar-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enhanced ClientUI Navigation Framework for WPF</title>
		<link>http://blog.intersoftsolutions.com/2011/01/enhanced-clientui-navigation-framework-for-wpf/</link>
		<comments>http://blog.intersoftsolutions.com/2011/01/enhanced-clientui-navigation-framework-for-wpf/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 04:48:52 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[2010 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Enhancements]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">https://intersoftpt.wordpress.com/2011/01/27/enhanced-clientui-navigation-framework-for-wpf/</guid>
		<description><![CDATA[In my ClientUI blog series last year, I have covered the importance of navigation infrastructure which makes the application’s overall user experiences. There were many other details that I described in the blog post, including our support for nested navigation, easy role-based security configuration and [...]]]></description>
				<content:encoded><![CDATA[<img width="466" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/image_thumb122-604x350.png" class="attachment-post-thumbnail wp-post-image" alt="Windows 7 Control Panel" style="float:right; margin:0 0 10px 10px;" /><p>In my ClientUI blog series last year, I have covered the importance of navigation infrastructure which makes the application’s overall user experiences. There were many other details that I described in the blog post, including our support for nested navigation, easy role-based security configuration and more. You can read about them in my blog post <a href="http://intersoftpt.wordpress.com/2010/06/29/clientui-part-5-the-supercharged-silverlight-navigation/">here</a>.</p>
<p>While the previous blog post gave impressions that the navigation framework was designed only for Silverlight, I would like to clarify that it is not. The ClientUI navigation framework supports both WPF browser and WPF desktop application very well since its initial release last year. </p>
<p>In this blog post, I will explain the essence of creating navigable desktop application, and tour the ClientUI navigation framework in WPF.</p>
<h2>Navigation in Desktop Applications</h2>
<p>When you hear about the ‘navigation’ term, what’s quickly popped up in your mind would be it’s a browser application. That’s true, navigation has always been always associated to the browser and the web. Unfortunately, many developers today disregards navigation infrastructure in desktop applications, and thought that the navigation is irrelevant in the desktop context.</p>
<p>As much as developers talk about desktop-style web applications, the fact is that desktop applications are revolutionizing toward web-style user interface. And one of the most prominent aspects in a web-style interface is always the navigation – it exactly means that content must be easily navigable. Surprisingly, you can easily find the kind of navigable desktop applications almost anywhere in your daily computing life, from Windows 7’s Control Panel and IIS Manager, to Windows Media Player, iTunes, and more.</p>
<p>Let’s take a look at Windows 7’s control panel interface for a clear picture of a navigable desktop application.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image12.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Windows 7 Control Panel" border="0" alt="Windows 7 Control Panel" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb12.png" width="642" height="392" /></a></p>
<p>Based on the above illustration, there are at least five great benefits for building navigable desktop applications:</p>
<ol>
<li>Journal management.      <br />When you see Back and Forward (also known as Journal) buttons, you can quickly tell that it is a navigable application. The journal management allows users to easily navigate back and forth to the previously visited content.       <br />&#160; </li>
<li>Direct content access.      <br />One of the best things about navigable interface is that it allows users to navigate a specific content directly. This is usually done through a simple breadcrumb, or a menu address bar such as introduced in latter version of Windows.       <br />&#160; </li>
<li>Multiple content source.      <br />In a navigable-designed application, you can facilitate users with easy navigation from multiple sources, be it the address bar in the top, the hyperlink in the left pane, or just about anywhere else. This allows users to navigate the applications in the way they accustomed to.       <br />&#160; </li>
<li>Searchable content.      <br />By designing your application to support navigation, it is easy to provide a search interface, allowing users to quickly finding the content they desire. Most traditional applications that don’t support navigation would face technical difficulties and limitations since there are no consistent interface that manages the entire navigation processes.       <br />&#160; </li>
<li>Reusable content.      <br />Last but not least, a well-designed navigation application will refactor each navigable content into a reusable form, allowing the content to be easily accessible directly, to be linked from multiple sources, and to be searchable. In development terms, the reusable content means easier to extend and better maintainability. </li>
</ol>
<h2>Creating WPF Navigation Application with ClientUI</h2>
<p>Now, I hope that I have well pointed out the main reasons why navigation is crucial for making a great user experience, regardless of whether it’s browser-based apps or desktop apps.</p>
<p>One of the features that set ClientUI apart is its powerful, thoughtfully-designed navigation framework. The main building block of the navigation framework such as the UXFrame and UXPage, implements unified API between Silverlight and WPF. This allows you to use the identical XAML markup between both platforms, which greatly minimizes the learning curves. Learn more about the fundamental of ClientUI navigation framework <a href="http://www.intersoftpt.com/Support/ClientUI/Docs/NavigationOverview.html">here</a>.</p>
<p>You might be wondering what it means with unified API in my previous statement. The easiest way to understand it is to take a piece of Silverlight’s XAML code and paste it to the WPF. In this case, try to copy the Silverlight’s built-in <strong>Frame </strong>element and use it in WPF, then see if you can run the project without errors. Clearly, the compiler will stop you as soon as you pressed F5.</p>
<p>The biggest challenges we faced in the WPF counterpart of ClientUI’s navigation framework is to come up with features to match the Silverlight’s counterpart, such as the URI mapping and mapped navigation source mechanism. URI mapping is a very nice feature that allows you to navigate to a content via a short and friendly address, instead of a lengthy one, for instance, navigating to a customers page can be done with a /Customers identifier instead of /Views/Customers.xaml.</p>
<p>The <strong>UXFrame</strong> element, which is the core of ClentUI’s navigation building block, supports URI mapping, thus enabling you to define the XAML such as the following.</p>
<p>  </p><pre class="crayon-plain-tag">&lt;Intersoft:UXFrame Name=&quot;ContentFrame&quot;&gt;
       &lt;Intersoft:UXFrame.UriMapper&gt;
             &lt;Intersoft:UriMapper&gt;
                  &lt;Intersoft:UriMapping Uri=&quot;&quot; 
                             MappedUri=&quot;/Views/Home.xaml&quot;/&gt;

                  &lt;Intersoft:UriMapping Uri=&quot;/{page}&quot;
                             MappedUri=&quot;/Views/{page}.xaml&quot;/&gt;
              &lt;/Intersoft:UriMapper&gt;
       &lt;/Intersoft:UXFrame.UriMapper&gt;
&lt;/Intersoft:UXFrame&gt;</pre><p></p>
<p>But, the URI mapping support doesn’t happen overnight. The main process of the mapping itself needs to be enhanced at the core framework level, because the navigation can be initiated through hyperlinks, buttons, toolbar buttons, or programmatically through APIs. For a quick illustration, the navigation framework should understand the mapped navigation request from a hyperlink such as shown below.</p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXHyperlinkButton NavigateUri=&quot;/Customers&quot; /&gt;</pre><p></p>
<p>In summary, the ClientUI navigation framework for WPF does not only include an enhanced navigation Frame, but a whole new navigation framework that spans from the core architecture to navigation sources and other advanced navigation features.</p>
<p>To help you quickly getting started with ClientUI navigation framework, I have created a simple WPF navigation application that you can use as a template. See the following illustration.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image13.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="ClientUI navigation application for WPF" border="0" alt="ClientUI navigation application for WPF" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb13.png" width="642" height="450" /></a></p>
<p>As seen in the above illustration, ClientUI navigation framework provides all the tools you need to create rich navigation user interface, including the journal button, navigation button, direct content access through hyperlink and other navigation sources, and more.</p>
<p>The navigation application sample above also demonstrates a number of unique features, such as page transition and automatic navigation direction. You will notice that new navigation would apply a fading transition effect, navigating backward would apply a fly-in effect, while navigating forward would apply a fly-out effect.</p>
<p>The navigation sample project consisted of the start up page, and three pages that represent the content for Home, Settings and About. The ViewModels classes are also included for your convenience.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image14.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="ClientUI navigation project" border="0" alt="ClientUI navigation project" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb14.png" width="615" height="482" /></a></p>
<p>Download the sample project <a href="http://www.intersoftpt.com/ClientUI/ClientUINavApp_WPF.zip">here</a>, feel free to play around and enhance it, and use it to start your next WPF navigation application. Note that you will need the latest ClientUI build (4.0.5000.3), more about the hotfix in the later section below.</p>
<h2>Silverlight Out-of-Browser, Well Supported</h2>
<p>One of the area in Silverlight that cross the desktop boundary is its out-of-browser application support. Along with the coverage for navigation in WPF desktop application, I’m pleased to share that the ClientUI navigation framework also supports Silverlight’s out-of-browser in all its glory – the URI mapping, visual transitions, automatic navigation detection, role-based security, and more. Here’s a snapshot of the OOB support.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image15.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb15.png" width="593" height="482" /></a></p>
<p>Best of all, download the Silverlight OOB project sample <a href="http://www.intersoftpt.com/ClientUI/ClientUINavApp_OOB.zip">here</a>. Have fun with it!</p>
<h2>Get the Free Update</h2>
<p>In case you haven’t aware, we recently posted the January ‘11 hotfix for ClientUI, which includes significant enhancements to WPF navigation and other stability fixes. </p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image16.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb16.png" width="573" height="245" /></a></p>
<p>To see the complete list, please head to <a href="http://intersoftpt.com/Support/ClientUI/VersionHistory/4.0.5000/">Intersoft Support Center – Version History</a>.</p>
<p>The hotfix is free for existing customers, which can be easily downloaded and installed via Intersoft Update Manager. If you haven’t used Update Manager before, make sure you check out this <a href="http://intersoftpt.com/Build/ApplyHotfix">article</a>.</p>
<p>In the next post, I will detail more about “nested navigation” and “global navigation state” in desktop applications, which explains the design decisions why URI mapping has to existed in the first place. For now, enjoy the latest hotfix, download the project samples and happy navigating!</p>
<p>All the best,<br />
  <br />Jimmy Petrus </p>
<p>Chief Software Architect</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2011/01/enhanced-clientui-navigation-framework-for-wpf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New in ClientUI 4: Intuitive Slider Bar Control</title>
		<link>http://blog.intersoftsolutions.com/2011/01/new-in-clientui-4-intuitive-slider-bar-control/</link>
		<comments>http://blog.intersoftsolutions.com/2011/01/new-in-clientui-4-intuitive-slider-bar-control/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 03:35:55 +0000</pubDate>
		<dc:creator><![CDATA[erikaa]]></dc:creator>
				<category><![CDATA[2010 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[ClientUI 2010]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[UXSliderBar]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">https://intersoftpt.wordpress.com/2011/01/27/new-in-clientui-4-intuitive-slider-bar-control/</guid>
		<description><![CDATA[ClientUI 4 is the latest version of our flagship development suite for the Silverlight and WPF platform. To learn more about ClientUI, you can read this post or visit ClientUI product information here. To see what&#8217;s new in ClientUI 4, see this article. Introducing UXSliderBar [...]]]></description>
				<content:encoded><![CDATA[<img width="538" height="220" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/blog1_thumb2.png" class="attachment-post-thumbnail wp-post-image" alt="Blog1" style="float:right; margin:0 0 10px 10px;" /><p>ClientUI 4 is the latest version of our flagship development suite for the Silverlight and WPF platform. To learn more about ClientUI, you can read this <a href="http://intersoftpt.wordpress.com/2010/12/30/clientui-4-for-silverlight-and-wpf-is-here">post</a> or visit ClientUI product information <a href="http://www.intersoftpt.com/ClientUI/">here</a>. To see what&#8217;s new in ClientUI 4, see <a href="http://www.intersoftpt.com/Support/ClientUI/Documentation/What'sNewInClientUI4.html">this article</a>.</p>
<h2>Introducing UXSliderBar</h2>
<p>UXSliderBar is one of the new controls included in ClientUI 4. UXSliderBar is mainly used to select a value from a range of values by moving the thumb along the slider bar track area. </p>
<p>For example: in the following property finder scenario, users can select a property size starts from 500 to 1000 square feet. Surely, you can use textbox to input the property size that you want. However, there are at least two advantages for using UXSliderBar. First, users will automatically know the range of property size available and easily select a value by moving the thumb. Second, you, as developer, can prevent users from inputting the wrong value in the textbox and thus, eliminate the needs to implement input type validation, should textbox is used instead.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/blog1.png"><img style="display:inline;border-width:0;" title="Blog1" border="0" alt="Blog1" src="http://intersoftpt.files.wordpress.com/2011/01/blog1_thumb.png" width="538" height="220" /></a></p>
<p>  </p><pre class="crayon-plain-tag">&lt;StackPanel&gt;
    &lt;TextBlock FontSize=&quot;26&quot;&gt;Property Finder&lt;/TextBlock&gt;
    &lt;Intersoft:FieldLabel&gt;
        &lt;Intersoft:FieldLabel.Header&gt;
            &lt;TextBlock Width=&quot;100&quot; TextWrapping=&quot;Wrap&quot; 
                       Text=&quot;Select Size (in sq ft.)&quot;&gt;&lt;/TextBlock&gt;
        &lt;/Intersoft:FieldLabel.Header&gt;
            &lt;Intersoft:UXSliderBar Width=&quot;400&quot; TickPlacement=&quot;BottomRight&quot; 
                                   Minimum=&quot;500&quot; Maximum=&quot;1000&quot;                                    
                                   LargeChange=&quot;100&quot; SmallChange=&quot;10&quot; 
                                   IsMoveToPointEnabled=&quot;True&quot; 
                                   Value=&quot;{Binding 
                                   PropertyFinder.PropertySize, 
                                   Mode=TwoWay, ValidatesOnDataErrors=True, 
                                   ValidatesOnExceptions=True}&quot;/&gt;
    &lt;/Intersoft:FieldLabel&gt;
    &lt;Intersoft:FieldLabel&gt;
        &lt;Intersoft:FieldLabel.Header&gt;
            &lt;TextBlock Width=&quot;100&quot; TextWrapping=&quot;Wrap&quot; 
                       Text=&quot;Select Price (in 1000 USD)&quot;&gt;&lt;/TextBlock&gt;
        &lt;/Intersoft:FieldLabel.Header&gt;
        &lt;Intersoft:UXRangeSliderBar Width=&quot;400&quot; TickPlacement=&quot;BottomRight&quot; 
                                    TickFormat=&quot;C0&quot; Minimum=&quot;100&quot; 
                                    Maximum=&quot;700&quot; LargeChange=&quot;100&quot; 
                                    SmallChange=&quot;10&quot; 
                                    SelectionStart=&quot;{Binding 
                                    PropertyFinder.StartPrice, 
                                    Mode=TwoWay, ValidatesOnDataErrors=True, 
                                    ValidatesOnExceptions=True}&quot;
                                    SelectionEnd=&quot;{Binding 
                                    PropertyFinder.EndPrice,
                                    Mode=TwoWay, ValidatesOnDataErrors=True, 
                                    ValidatesOnExceptions=True}&quot;/&gt;
    &lt;/Intersoft:FieldLabel&gt;
    &lt;Button Content=&quot;Search&quot; Width=&quot;100&quot; Margin=&quot;0, 20, 0, 0&quot;&gt;&lt;/Button&gt;
&lt;/StackPanel&gt;</pre><p></p>
<p>You might note that UXRangeSliderBar is used in this scenario, but we’ll discuss about that in the next post <img src="http://blog.intersoftsolutions.com/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>I’ve mentioned that you can easily select a value in UXSliderBar by moving the thumb along the slider bar track area. Besides that, you can use a variation of keyboard keys registered to UXSliderBar commands or click the slider bar track area and handle buttons. These user interactions will use the value of <strong>LargeChange</strong> and <strong>SmallChange</strong> properties specified in UXSliderBar.</p>
<ul>
<li>Use keyboard keys.<br />
    <br />Some key gestures are already registered to UXSliderBar commands. When you press Up, Down, Left, or Right keys, the value of UXSliderBar will be added or subtracted with the value of <strong>SmallChange</strong> property. For example: in the above scenario, the value of UXSliderBar is 700.When you press the Right key, the value of UXSliderBar will be added with the value of <strong>SmallChange</strong> property, which is 10. So, the value of UXSliderBar now is 710. </p>
<p>When you press PageUp or PageDown keys, the value of UXSliderBar will be added or subtracted with the value of <strong>LargeChange</strong> property. So, if the value of UXSliderBar is 710 and you press the PageDown key, the value of UXSliderBar will be subtracted with the value of <strong>LargeChange</strong> property, 100. So, the value of UXSliderBar now is 610. </p>
<p>When you press Home or End key, the value of UXSliderBar will be set to the <strong>Minimum</strong> or <strong>Maximum</strong> property respectively. If you press End key, the value of UXSliderBar will be set to 1000 and the thumb will move to the end of the slider bar. </p>
</li>
<li>Click the slider bar track area.<br />
    <br />You can also click the track area at the left or right side of the thumb. When you click the blue area, known as DecreaseButton, the value of UXSliderBar will be subtracted with the value of <strong>LargeChange</strong> property. When you click the purple area, known as IncreaseButton, the value of UXSliderBar will be added with the value of <strong>LargeChange</strong> property. </p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/blog2.png"><img style="display:inline;border-width:0;" title="Blog2" border="0" alt="Blog2" src="http://intersoftpt.files.wordpress.com/2011/01/blog2_thumb.png" width="540" height="76" /></a> </p>
</li>
<li>Click the handle buttons.<br />
    <br />By default the handle buttons are not displayed in UXSliderBar. To display the handle buttons, you can set <strong>HandlesVisibility</strong> to Visible. Two arrow-shaped buttons will be displayed at the left and right side of UXSliderBar. </p>
<p>When you click the handle buttons, the value of UXSliderBar will be added or subtracted with the value of <strong>SmallChange</strong> property. </p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/blog3.png"><img style="display:inline;border-width:0;" title="Blog3" border="0" alt="Blog3" src="http://intersoftpt.files.wordpress.com/2011/01/blog3_thumb.png" width="511" height="63" /></a> </li>
</ul>
<h2>Enabling Snap to Tick Behavior</h2>
<p>When moving thumb to select a value, it is possible that you select a fractional value, such as: 700.346, which is rather uncommon for a property size. I think you would want a rounded value for that, right? In this case, you can enable <strong>IsSnapToTickEnabled</strong> property.</p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXSliderBar Width=&quot;400&quot; TickPlacement=&quot;BottomRight&quot; Minimum=&quot;500&quot; 
                       Maximum=&quot;1000&quot; LargeChange=&quot;100&quot; SmallChange=&quot;10&quot;                                                                      IsSnapToTickEnabled=&quot;True&quot; Value=&quot;{Binding 
                       PropertyFinder.PropertySize, Mode=TwoWay, 
                       ValidatesOnDataErrors=True, 
                       ValidatesOnExceptions=True}&quot;/&gt;</pre><p></p>
<p>When this property is enabled, the thumb will move to the closest tickbar item. So, as you move the thumb to the right, it will snap to 600, 700, 800, and so on. </p>
<p>When snap to tick behavior is enabled, you can still enable precision selection by pressing Ctrl key. Try to move the thumb while pressing the Ctrl key. The thumb will not snap to the closest tickbar item, but moves along with the cursor position, as if this behavior is not enabled.</p>
<h2>Enabling Move to Point Behavior</h2>
<p>Now, what if I want to select 900 as the property size? This might be what you think; either moves the thumb, press Up key several times, or click the track area continuously. Well, let me save your time a bit by introducing <strong>IsMoveToPointEnabled</strong> property. </p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXSliderBar Width=&quot;400&quot; TickPlacement=&quot;BottomRight&quot; Minimum=&quot;500&quot; 
                       Maximum=&quot;1000&quot; LargeChange=&quot;100&quot; SmallChange=&quot;10&quot;                                               IsMoveToPointEnabled=&quot;True&quot; Value=&quot;{Binding 
                       PropertyFinder.PropertySize, Mode=TwoWay, 
                       ValidatesOnDataErrors=True, 
                       ValidatesOnExceptions=True}&quot;/&gt;</pre><p></p>
<p>When this property is enabled, you can click on any position in the slider bar track area and the thumb will move immediately to the location of the click. You can click on 900 tickbar item and the thumb will move immediately there.</p>
<p>Well, I understand clicking right on the tickbar item will not be that easy and I probably would need a couple of try for that. That is the reason why you should enable both snap to tick and move to point behavior. When these properties are enabled, you can click near the tickbar item and the thumb will snap to it.</p>
<h2>Enabling Auto Tooltip</h2>
<p>While moving the thumb along the slider bar track area, you might find it difficult to determine what value you are hovering. You can display a tooltip near the thumb that contains the value of the hovered position using <strong>AutoTooltipVisibility</strong> property. You can specify <strong>AutoTooltipPosition</strong>, <strong>AutoTooltipFormat</strong>, <strong>AutoTooltipHorizontalDirection</strong>, and <strong>AutoTooltipVerticalDirection</strong> for additional configuration.</p>
<p>Let’s say you want to select a discount value using UXSliderBar. You can display the percentage value you’re selecting in the tooltip.</p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXSliderBar TickPlacement=&quot;BottomRight&quot; TickFormat=&quot;P0&quot; 
                       Maximum=&quot;1&quot; LargeChange=&quot;0.2&quot; 
                       AutoTooltipVisibility=&quot;Visible&quot; 
                       AutoTooltipFormat=&quot;P0&quot;/&gt;</pre><p></p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/blog4.png"><img style="display:inline;border-width:0;" title="Blog4" border="0" alt="Blog4" src="http://intersoftpt.files.wordpress.com/2011/01/blog4_thumb.png" width="504" height="97" /></a> </p>
<h2>Displaying Value Range Track</h2>
<p>In the discount slider bar, it can be useful to display the active selection track. You can see how much discount applied to a product simply by seeing the value range track. In UXSliderBar, the value range track is indicated by a blue-colored track that starts from the value of <strong>Minimum</strong> property to the selected value of UXSliderBar. You can display the value range track using <strong>ValueRangeVisibility </strong>property. </p>
<p></p><pre class="crayon-plain-tag">&lt;Intersoft:UXSliderBar TickPlacement=&quot;BottomRight&quot; TickFormat=&quot;P0&quot; 
                       Maximum=&quot;1&quot; LargeChange=&quot;0.2&quot; 
                       ValueRangeVisibility=&quot;Visible&quot; 
                       Value=&quot;0.5&quot;/&gt;</pre><p></p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/blog5.png"><img style="display:inline;border-width:0;" title="Blog5" border="0" alt="Blog5" src="http://intersoftpt.files.wordpress.com/2011/01/blog5_thumb.png" width="503" height="81" /></a> </p>
<h2>Conclusion</h2>
<p>In this post, you have learned the various ways to change the value of UXSliderBar, the behaviors related to it, the auto tooltip, and the value range track. </p>
<p>To try it out yourself, feel free to browse through the samples <a href="http://http:/live.clientui.com/#/UXInput/UXSliderBar">here</a>. To see all available features in UXSliderBar, see <a href="http://www.intersoftpt.com/Support/ClientUI/Documentation/UXSliderBar.html">UXSliderBar Overview</a>. If you have questions or feedback about UXSliderBar, feel free to post them to <a href="http://www.intersoftpt.com/Community/ClientUI/">our community forum</a>.</p>
<p>Cheers,<br />
  <br />Erika</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2011/01/new-in-clientui-4-intuitive-slider-bar-control/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WebUI Studio 2010 R2 Installer Update Is Now Available</title>
		<link>http://blog.intersoftsolutions.com/2011/01/webui-studio-2010-r2-installer-update-is-now-available/</link>
		<comments>http://blog.intersoftsolutions.com/2011/01/webui-studio-2010-r2-installer-update-is-now-available/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 15:50:01 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[2010 R2]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[New Releases]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">https://intersoftpt.wordpress.com/2011/01/12/webui-studio-2010-r2-installer-update-is-now-available/</guid>
		<description><![CDATA[We’re pleased to announce that the WebUI Studio 2010 R2 “refresh” installer is now available for download. Prospect customers can download it from our trial request here, while existing customers can download it from Developer Network. Control Updates The new installer includes the latest ClientUI [...]]]></description>
				<content:encoded><![CDATA[<img width="466" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/image_thumb101-604x350.png" class="attachment-post-thumbnail wp-post-image" alt="ClientUI Online Documentation" style="float:right; margin:0 0 10px 10px;" /><p>We’re pleased to announce that the WebUI Studio 2010 R2 “refresh” installer is now available for download. Prospect customers can download it from our trial request <a href="http://www.webuistudio.com/try">here</a>, while existing customers can download it from <a href="http://dev2.intersoftpt.com/">Developer Network</a>.</p>
<h2>Control Updates</h2>
<p>The new installer includes the latest ClientUI assemblies for Silverlight 3, Silverlight 4 and WPF 4. It includes significant enhancements to the UXCurrencyEditor’s editing experiences which I explained in my <a href="http://intersoftpt.wordpress.com/2011/01/05/new-year-goodies-mac-metro-style-tab-controls-updated-samples-and-more/">previous post</a>. It also addresses a minor glitch where the licensing failed in the design-time.</p>
<p>The updated installer also includes a number of important enhancements particularly to the WPF counterpart of ClientUI. Many of these enhancements are based on the feedback that we received over the past months. Some key enhancements are listed below:</p>
<ul>
<li>Improved XAML unification with the Silverlight counterpart, including command binding, key binding, and gestures definition. </li>
<li>Windowing and desktop controls now support all scenarios similar to the Silverlight counterpart, such as loading content from external XAML. </li>
<li>Enhanced navigation framework and navigation controls to support all scenarios similar to the Silverlight counterpart, including visual transitions, URI mapping, and other behaviors. </li>
<li>Enhanced hyperlink button control with revamped template which improve responsiveness and eliminate flickering when automatic underlining on hover feature is enabled. </li>
<li>Calendar and date time picker control are tweaked for best rendering performance, resulting an even faster and smoother user experience. </li>
</ul>
<h2>Documentation Updates</h2>
<p>In addition to the product bits, all documentation topics have been further updated with more information and examples, including hundreds of classes and type members in the ClientUI assemblies. </p>
<p>Thanks to our developer-friendly documentation format, you can now quickly learn a particular feature by looking up the related property in the class library section of the documentation. So if you’re developing with Visual Studio, simply press F1 key in the property window to bring up the documentation for the selected property.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image10.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="ClientUI Online Documentation" border="0" alt="ClientUI Online Documentation" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb10.png" width="642" height="451" /></a></p>
<p>The online documentation has been updated as well, which you can browse <a href="http://www.intersoftpt.com/Support/ClientUI/Documentation/">here</a>.</p>
<h2>Support Center Updates</h2>
<p>Along the new installer, Intersoft’s support center has also been updated with fresh content related to the new controls added in ClientUI 4 release. Each topic is neatly categorized allowing you to find related information faster.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image11.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Support Center Updates" border="0" alt="Support Center Updates" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb11.png" width="622" height="482" /></a></p>
<p>You can browse the ClientUI support home <a href="http://www.intersoftpt.com/Support/ClientUI">here</a>.</p>
<p>All the best,    <br />Jimmy Petrus</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2011/01/webui-studio-2010-r2-installer-update-is-now-available/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ClientUI &amp; DevForce Part 2: Contact Sandbox Editor</title>
		<link>http://blog.intersoftsolutions.com/2011/01/clientui-devforce-part-2-contact-sandbox-editor/</link>
		<comments>http://blog.intersoftsolutions.com/2011/01/clientui-devforce-part-2-contact-sandbox-editor/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 16:45:27 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[2010 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[DevForce]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">https://intersoftpt.wordpress.com/2011/01/11/clientui-devforce-part-2-contact-sandbox-editor/</guid>
		<description><![CDATA[A while back, we released the first version of Contacts sample application to demonstrate the best practices in building MVVM applications that support Silverlight and WPF using one codebase. The sample application was jointly developed by Intersoft and IdeaBlade. In case you missed the story, [...]]]></description>
				<content:encoded><![CDATA[<img width="466" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/image_thumb73-604x350.png" class="attachment-post-thumbnail wp-post-image" alt="Contact editor" style="float:right; margin:0 0 10px 10px;" /><p>A while back, we released the first version of Contacts sample application to demonstrate the best practices in building MVVM applications that support Silverlight and WPF using one codebase. The sample application was jointly developed by <a href="http://www.intersoftpt.com">Intersoft</a> and <a href="http://www.ideablade.com">IdeaBlade</a>. In case you missed the story, be sure to check out the whole coverage in my blog post <a href="http://intersoftpt.wordpress.com/2010/11/23/extending-contacts-application-silverlight-wpf-with-devforce-2010/">here</a>.</p>
<p>One of the fundamental concepts in the Silverlight/WPF data binding is that every modification on the entity that bound to elements through data context would automatically propagate that changes to the bound UI elements. The MVVM pattern, actually, built upon this data binding capability. However there are certain cases where the automatic propagation is not desired, for instance, when an object is in editing context.</p>
<p>Not so long after we released the first Contacts application, we received feedback from customers asking if it is possible to “isolate” the editing context, so that changes won’t reflect to UI elements bound to the entity. The customers couldn’t go wrong in this case, because reflecting the changes in such editing context while it has not been saved is simply confusing to end users, or I would say, counter intuitive.</p>
<p>The following illustration shows the editing dialog box in the Contacts sample application.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image7.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="Contact editor" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb7.png" border="0" alt="Contact editor" width="642" height="421" /></a></p>
<p>Notice that the “Name” in the list box will reflect as you modify the Name text box in the Contact editing dialog box. As developers, we understood that it was an effect of data binding, unfortunately it’s simply unacceptable to stake holders and application users.</p>
<p>In this post, I will introduce our new approach, called sandboxed editing mode, to shoot the problem in the most efficient and elegant way possible.</p>
<h2>Introducing ContactSandboxEditor</h2>
<p>The approach of isolating the editing process of an entity is widely known as “sandboxed” editing mode. In this second series of our joint Contacts sample, we introduced <strong>ContactSandBoxEditor</strong>, an improved editor that implement isolated persistence editing.</p>
<p>The new <strong>ContactSandBoxEditor</strong> doesn’t reinvent the wheel, instead, it plays nicely with the existing architecture that we designed in the first place. The <strong>ContactSandBoxEditor</strong> derives from <strong>ContactEditor</strong> class, then we simply overriding three key methods that are used to add, edit and get saved contact, see the snippet code below.</p><pre class="crayon-plain-tag">public class ContactSandboxEditor : ContactEditor
{
    public ContactSandboxEditor(IContactsRepository callerRepository)
        : base(ContactsRepository.CreateRepository())
    {
        CallerRepository = callerRepository;
    }

    private IContactsRepository CallerRepository { get; set;  }

    public override void AddNewContact(Action&lt;contact&gt; onOk, Action onCancel)
    {
        Repository.ClearAllContacts();
        var contact = Repository.CreateContact();
        ShowContactDialogBox(contact, onOk, onCancel);
    }

    public override void EditExistingContact(
        Contact sourceContact, Action&lt;contact&gt; onOk, Action onCancel)
    {
        Repository.ClearAllContacts();
        var contact = Repository.ImportContact(sourceContact);
        ShowContactDialogBox(contact, onOk, onCancel);
    }

    protected override Contact GetSavedContact(
                             ContactEditViewModel viewModel)
    {
        return CallerRepository.ImportContact(viewModel.Contact);
    }
}</pre><p>As seen in the code above, DevForce provides a number of built-in methods to work with and manage entities, such as FindEntities, ImportEntities and RemoveEntities, making it easy and straightforward to implement contact import and rollback functionality.</p>
<p>Another nice benefit with this approach is that you can easily switch between the editing mode by simply changing the default contact editor in the <strong>ContactsViewModel.cs</strong>, see below.</p><pre class="crayon-plain-tag">private void SetDefaultContactEditor()
{
    // this.ContactEditor = new ContactEditor(Repository);
    this.ContactEditor = new ContactSandboxEditor(Repository);
}</pre><p>The following illustration describes the interaction between the <strong>ContactsView</strong>, <strong>ContactsViewModel</strong>, <strong>Repository </strong>and the new <strong>ContactSandBoxEditor</strong>.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image8.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Contact Sandbox Editor" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb8.png" border="0" alt="Contact Sandbox Editor" width="640" height="315" /></a></p>
<p>As seen in the above illustration, the <strong>ContactSandBoxEditor</strong> exposes the following processes:</p>
<ol>
<li>The user clicks “edit” in the <strong>ContactsView</strong>; the view alerts the <strong>ContactsViewModel</strong></li>
<li>The <strong>ContactsViewModel</strong> calls the <strong>ContactEditor</strong></li>
<li>The <strong>ContactEditor</strong> performs the following:<br />
a. makes a copy of the Contact and imports it into its own private repository<br />
b. creates the window,<br />
c. creates the editing View,<br />
d. creates the editing ViewModel using the private repository<br />
e. puts the View and ViewModel inside the window,<br />
f. shows the window, and waits for the user to finish editing.</li>
<li>When the user closes the window the <strong>ContactEditor</strong>:<br />
a. if the user saved, it copies the saved Contact back into the main Repository<br />
b. If the user canceled, the changes to the Contact copy are abandoned.</li>
<li>The <strong>ContactEditor</strong> cleans up and tells the <strong>ContactsViewModel</strong> what happened.</li>
</ol>
<p>As the results of the sandbox editor implementation, changes on the editing dialog box will no longer reflecting the UI elements bound to the entity. Of course, the changes will be merged and reflected later when the Save button is clicked. See the following screenshot.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image9.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="Sandbox contact editor" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb9.png" border="0" alt="Sandbox contact editor" width="642" height="435" /></a></p>
<p>To learn more how to implement and use sandbox editor in depth details, please read the <a href="http://www.intersoftpt.com/ClientUI/2_AddSandboxEditorToContactsApp.pdf">PDF walkthrough</a> that we’ve prepared for you.</p>
<h2>Download the Solution</h2>
<p>Click <a href="http://www.intersoftpt.com/ClientUI/ClientUI_DevForceIntegration_v2.zip">here</a> to download the Contacts project source code along with the walkthrough documents. Feel free to play around with the code and use it in your apps! Note that DevForce version 6.0.7 is required to run this sample. You can download the latest DevForce bits <a href="http://www.ideablade.com/DevForceUniversal/DevForceUniversal_DownloadEditions.aspx">here</a>.</p>
<p>In case you missed the news, we recently announced an official strategic partnership with IdeaBlade to focus on an integrated development solution for Silverlight and WPF. We are making available a variety of cost-effective product bundle. Click <a href="http://intersoftpt.com/Corporate/PressRelease.aspx?page=PressRelease&amp;PressID=dab53ef4-0596-44b6-81b8-cf2e81ed4762">here</a> to find out more.</p>
<p>While we’ll be kicking-in some nice features for the next series, we’d love to hear your feedback on the Contacts application so far. Are there any specific features you wish to see? Or, perhaps architectural challenges that you are struggling with? Drop them in the comment box, and we will get back to you with solutions.</p>
<p>All the best,<br />
Jimmy Petrus</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2011/01/clientui-devforce-part-2-contact-sandbox-editor/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>New in ClientUI 4: Versatile Calendar Control</title>
		<link>http://blog.intersoftsolutions.com/2011/01/new-in-clientui-4-versatile-calendar-control/</link>
		<comments>http://blog.intersoftsolutions.com/2011/01/new-in-clientui-4-versatile-calendar-control/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 07:05:45 +0000</pubDate>
		<dc:creator><![CDATA[intersoftbram]]></dc:creator>
				<category><![CDATA[2010 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[ClientUI 2010]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">https://intersoftpt.wordpress.com/2011/01/07/new-in-clientui-4-versatile-calendar-control/</guid>
		<description><![CDATA[The recently released 2010 R2 features ClientUI 4, a major version of our flagship development suite for the Silverlight and WPF platforms. ClientUI 4 is strongly focused in three areas: rich content and UI controls, advanced input controls, and fundamental navigation controls. For further information [...]]]></description>
				<content:encoded><![CDATA[<img width="299" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/image_thumb33-387x350.png" class="attachment-post-thumbnail wp-post-image" alt="image" style="float:right; margin:0 0 10px 10px;" /><p>The recently released 2010 R2 features ClientUI 4, a major version of our flagship development suite for the Silverlight and WPF platforms. ClientUI 4 is strongly focused in three areas: rich content and UI controls, advanced input controls, and fundamental navigation controls. For further information about ClientUI 4, please click <a href="http://intersoftpt.wordpress.com/2010/12/30/clientui-4-for-silverlight-and-wpf-is-here/" target="_blank">here</a>.</p>
<h2>Introducing UXCalendar</h2>
<p>One of the controls introduced in ClientUI 4 is UXCalendar, a sophisticated calendar control featuring multiple month views, multiple date selection feature and data binding support using MVVM design pattern.</p>
<p>UXCalendar sports a sleek yet authentic style and user interface, complete with today link, navigational buttons, week number and adjacent days. The following illustration shows what you get when you dropped an instance of UXCalendar in your Visual Studio or Blend designer surface.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image3.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb3.png" width="387" height="374" /></a></p>
<p>We designed the UXCalendar to be ultimately lightweight and high performance, despite of its rich user interface. For instances, when clicking the Calendar Header, you will see responsive zoom-in and zoom-out transition similar to the one in Windows 7.</p>
<p>What’s really powerful is the multiple month views capability in UXCalendar – with the sleek user interface and styles consistently applied. You can easily set how many calendars to display by setting the <strong>CalendarViewCount</strong> property to the desired number. See the multiple month views interface in the following illustration.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image4.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb4.png" width="628" height="370" /></a></p>
<p>Suffice to say, UXCalendar is the ultimate, cross-platform solution for all your calendaring needs. It also features built-in commands and flexible key gestures, multiple selection (and even multiple range), MVVM data binding for events source, display range customization, culture and localization support, and many more. Click <a href="http://www.intersoftpt.com/Support/ClientUI/Docs/UXCalendar.html">here</a> to learn more about UXCalendar.</p>
<h2>Customizing UXCalendar Layout</h2>
<p>UXCalendar is uniquely built on solid architecture that leverages our ItemsControl content model. This means that each calendar that represents an item in the UXCalendar can be easily and flexibly styled according to your need. You can even completely change the way it is arranged, let’s say, showing the calendars in 2 columns and 1 row, or 3 columns and 2 rows.</p>
<p>By default, the layout of UXCalendar is using a horizontal StackPanel. You can override this default layout through the <strong>ItemsPanel</strong> property of the UXCalendar.</p>
<p>In this blog post, I will show you how to create a UXCalendar with multiple month views displayed in 3 columns and 2 rows. Please follow the steps below:</p>
<ol>
<li>Drag and drop an instance of UXCalendar to the designer surface. You can use either Visual Studio 2010 or Expression Blend 4.      <br /><a href="http://intersoftpt.files.wordpress.com/2011/01/image5.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb5.png" width="201" height="240" /></a>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:55df8448-74f9-4d3a-ab43-7b7829635f3a" class="wlWriterSmartContent">       <pre class="crayon-plain-tag">&lt;Intersoft:UXCalendar Name=&quot;uXCalendar1&quot;
HorizontalAlignment=&quot;Center&quot; VerticalAlignment=&quot;Center&quot; /&gt;</pre>
    </div>
</li>
<li>Show six months calendar view by setting the <strong>CalendarViewCount</strong> property to 6.
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:cd68c56e-8a5c-4c06-92ad-128ec1103125" class="wlWriterSmartContent">
      <pre class="crayon-plain-tag">&lt;Intersoft:UXCalendar Name=&quot;uXCalendar1&quot; CalendarViewCount=&quot;6&quot;
HorizontalAlignment=&quot;Center&quot; VerticalAlignment=&quot;Center&quot; /&gt;</pre>
    </div>
</li>
<li>And now the final step, customize the ItemPanels of the UXCalendar. I’m using Intersoft’s <strong>WrapPanel</strong> and set the <strong>MaxWidth</strong> property to 600 to get the 3 x 2 display configuration.
<p></p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:49af30e6-269a-4ea6-bf5e-df00931e8edf" class="wlWriterSmartContent">
      <pre class="crayon-plain-tag">&lt;Intersoft:UXCalendar Name=&quot;uXCalendar1&quot; CalendarViewCount=&quot;6&quot;
HorizontalAlignment=&quot;Center&quot; VerticalAlignment=&quot;Center&quot;&gt;
    &lt;Intersoft:UXCalendar.ItemsPanel&gt;
        &lt;ItemsPanelTemplate&gt;
            &lt;Intersoft:WrapPanel MaxWidth=&quot;600&quot; /&gt;
        &lt;/ItemsPanelTemplate&gt;
    &lt;/Intersoft:UXCalendar.ItemsPanel&gt;
&lt;/Intersoft:UXCalendar&gt;</pre>
    </div>
</li>
<li>Save and run the project in the browser. You should get the results such as shown in the following illustration.<a href="http://intersoftpt.files.wordpress.com/2011/01/image6.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb6.png" width="609" height="489" /></a> </li>
</ol>
<p>Truly simple and straightforward, isn’t it?</p>
<p>In this short post, you have now learned the basics of UXCalendar, and how to customize its layout arrangement<a name="_GoBack"></a>. You can play around with the UXCalendar features through the properties, or try some readily designed samples <a href="http://live.clientui.com/#/UXInput/UXCalendar">here</a>. To see all available features, please see <a href="http://www.intersoftpt.com/Support/ClientUI/Docs/UXCalendar.html">UXCalendar Overview</a>.</p>
<p>You will need the latest 2010 R2 bits which you can download it <a href="http://www.webuistudio.com/try">here</a>. If you have questions or feedback about UXCalendar, feel free to post them to <a href="http://www.intersoftpt.com/community">our community forum</a>.</p>
<p>Best Regards,<br />
  <br />Budianto Muliawan</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2011/01/new-in-clientui-4-versatile-calendar-control/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Year Goodies: Mac &amp; Metro-style Tab Controls, Updated Samples, and more</title>
		<link>http://blog.intersoftsolutions.com/2011/01/new-year-goodies-mac-metro-style-tab-controls-updated-samples-and-more/</link>
		<comments>http://blog.intersoftsolutions.com/2011/01/new-year-goodies-mac-metro-style-tab-controls-updated-samples-and-more/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 06:17:27 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[2010 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Style]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">https://intersoftpt.wordpress.com/2011/01/05/new-year-goodies-mac-metro-style-tab-controls-updated-samples-and-more/</guid>
		<description><![CDATA[2010 was a big, important year to Intersoft. We closed the year with a total of 240 new and quality controls across all .NET development platforms: ASP.NET, Silverlight 3, Silverlight 4 and WPF 4. And best of all,&#160; our overall position in the market share [...]]]></description>
				<content:encoded><![CDATA[<img width="432" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/uxtabcontrol1-560x350.png" class="attachment-post-thumbnail wp-post-image" alt="Built-in Aero style" style="float:right; margin:0 0 10px 10px;" /><p>2010 was a big, important year to Intersoft. We closed the year with a total of 240 new and quality controls across all .NET development platforms: ASP.NET, Silverlight 3, Silverlight 4 and WPF 4. And best of all,&#160; our overall position in the market share has increased by nearly 300%, positioning us as one of the most preferred component vendors in the world. You can read more about our news <a href="http://intersoftpt.com/Corporate/News">here</a>, and press releases <a href="http://intersoftpt.com/Corporate/PressRelease">here</a>.</p>
<p>To kick off the new year, I’d like to share with you a number of exciting goodies that we have prepared exclusively for you. Here they are.</p>
<h2>Mac-style Tab Control</h2>
<p>The recent 2010 R2 release features a sleek tab control, one of the 60 new controls introduced in the release. The tab control sports a clean, Aero-style theme, shown in the following image.</p>
<p><img title="Built-in Aero style" alt="Built-in Aero style" src="http://intersoftpt.files.wordpress.com/2010/12/uxtabcontrol.png" /></p>
<p>While the predefined Aero-style is clearly nice, you may want to achieve a different visual style, particularly to the one ideal in Mac-style applications. The good news is that our tab control is fully customizable, allowing us to revamp the style completely without affecting the functionality.</p>
<p>Here’s a shot for the Mac-style tab control, with all its elegant look and feel in pixel details.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Mac style tab control" border="0" alt="Mac style tab control" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb.png" width="579" height="334" /></a></p>
<p>And yes, the theme source is provided! See next.</p>
<h2>Metro-style Tab Control</h2>
<p>One of the designs that often requested is the Metro UI style navigation control. Metro UI is introduced by Microsoft, originally in its Zune software, and recently popularized in its Windows Phone 7 software. The concept is fundamentally based on clean and minimalist design and guidelines, avoiding glossy and gradients.</p>
<p>We thought you’d love a Metro-style tab control, thus we designed one for you. Here’s the screen shot.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Metro UI style tab control" border="0" alt="Metro UI style tab control" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb1.png" width="525" height="383" /></a></p>
<p>Looks modern and clean, isn’t it? I’d surely love to hear your thought about it!</p>
<p>Metro UI, apparently, is not only about static interface, it’s all about authentic user experiences. In addition to the clean look, Metro style emphasizes on subtle animation during navigation. The animation should also be applied differently based on the navigation direction. For instances, applying a SlideLeft transition when users switched to the previous tab, and a SlideRight transition for the next tab.</p>
<p>The new tab control allows you to achieve this so-called Metro user experience in just few clicks. Simply set the <strong>EnablePageTransition</strong> and <strong>AutoDetectNavigationDirection </strong>property to true, it’s that easy! Thanks to the ClientUI’s solid content transition architecture and navigation framework that made this possible. You can learn more about it <a href="http://www.intersoftpt.com/Support/ClientUI/Docs/UXTabControl.html">here</a>.</p>
<p>And finally, grab the source for the Mac and Metro style <a href="http://www.intersoftpt.com/ClientUI/UXTabControl_Styles.zip">here</a>.</p>
<p>Note: Each new style is nicely refactored in a single XAML file, which you can find in the /Assets/Styles folder. To use it in your project, simply copy the desired XAML file and paste it in your project, then add it as a resource in your App.xaml.</p>
<h2>Enhanced Currency Editor</h2>
<p>The ClientUI live sample has been recently updated with latest bits that include a number of enhancements, particularly on the currency editor released last week.</p>
<p>What’s really cool about the new currency editor is its intuitive editing experiences that were specifically designed for currency input. For instances, pressing minus key will turn toggle the value to positive or negative. The negative value may have its own visual presentation, such as showing the value in red. See the following illustration.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2011/01/image2.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Currency Editor" border="0" alt="Currency Editor" src="http://intersoftpt.files.wordpress.com/2011/01/image_thumb2.png" width="624" height="338" /></a></p>
<p>Another interesting feature is the culture-aware decimal input, particularly to enter the minor number. In the U.S. culture, users press the period key to input minor number, while users with France culture press the comma key.</p>
<p>The latest version further improves the currency editing experiences with a smart minor number insertion, a result of our consultation with a group of accounting experts! You can now place the keyboard cursor anywhere in the minor number areas and type a number to insert at that position, while pressing backspace naturally delete the previous number and shift the entire minor number back to the left.</p>
<p>You can try many of the currency editor’s capabilities in the Various Format sample, which you can access online <a href="http://live.clientui.com/#/UXInput/UXCurrencyEditor/VariousCurrencyEditor">here</a>.</p>
<p>These new enhancements, along with other minor issues fix, will be accumulated into a “RTM refresh” installer due next week. Stay tuned for the next announcement.</p>
<h2>Localization Manager Sample</h2>
<p>In my previous <a href="http://intersoftpt.wordpress.com/2010/12/16/coming-in-r2-mvvm-localization-manager-multi-bindings/">post</a>, I have touched the surface about Localization Manager, a new framework in ClientUI 4 that allows you to localize your Silverlight/WPF application using MVVM pattern and dynamic resource.</p>
<p>You can learn more about localization manager <a href="http://www.intersoftpt.com/Support/ClientUI/Docs/LocalizationOverview.html">here</a>, and download the sample bits <a href="http://www.intersoftpt.com/ClientUI/ClientUILocalizationManager.zip">here</a>.</p>
<p><img src="http://intersoftpt.files.wordpress.com/2010/12/image1.png" width="500" height="361" /></p>
<h2>Offline ClientUI 4 Documentation</h2>
<p>ClientUI 4 offline documentation in CHM format is now available. Download it <a href="http://www.intersoftpt.com/Support/ClientUI/ClientUI.chm">here</a>. Note that you may need to unblock the CHM if you cannot open the file after downloaded.</p>
<p>If you preferred an online experience, you can browse the documentation <a href="http://www.intersoftpt.com/Support/ClientUI/Documentation">here</a>.</p>
<hr />
<p>Once again, happy 2011! And enjoy the exclusive goodies. </p>
<p>PS: Make sure you’ve installed 2010 R2 to find the new controls. You can download the free trial <a href="http://www.clientui.com/download">here</a>.</p>
<p>All the best,    <br />Jimmy Petrus</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2011/01/new-year-goodies-mac-metro-style-tab-controls-updated-samples-and-more/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
