Intersoft ClientUI 8 > Getting Started > Migrating from Previous Version |
The previous version of Intersoft’s Silverlight tools named Aqua, consisted of WebFishEye and WebCoverFlow, have been rebranded to UXDock and UXFlow respectively. These controls, now part of ClientUI, were rewritten from the ground-up to take advantage of latest Silverlight 4 technology such as items template, items panel, and full support for MVVM pattern development.
This section provides a list of breaking changes from the previous version of Aqua to the new version which is now part of the ClientUI family.
In Intersoft WebUI Studio 2009 R2, there are two controls included in WebAqua for Silverlight, they are WebFishEye and WebCoverFlow. In Intersoft WebUI Studio 2010 R1, these controls’ name has changed. WebFishEye is currently known as UXDock and WebCoverFlow is known as UXFlow. Consequently, both UXDock and UXFlow have now become part of Intersoft ClientUI controls.
The namespace of the WebFishEye control is ISNet.Silverlight.WebAqua.WebFishEye. The namespace of the new version of this control, UXDock, is Intersoft.Client.UI.Aqua.UXDock.UXDock.
The namespace of the WebCoverFlow control is ISNet.Silverlight.WebAqua.WebCoverFlow. The namespace of the new version of this control, UXFlow, is Intersoft.Client.UI.Aqua.UXFlow.UXFlow.
Since the control name has changed, there are also changes in the tag prefix of the corresponding controls. For example, the WebFishEye control that used ISNet_Silverlight_WebAqua:WebFishEye as the tag prefix is now simplified to Intersoft:UXDock. WebCoverFlow that used ISNet_Silverlight_WebAqua:WebCoverFlow as the tag prefix, now becomes Intersoft:UXFlow.
The previous version of WebFishEye for Silverlight has structure as shown in the following example:
XAML |
Copy Code
|
---|---|
<ISNet_Silverlight_WebAqua:WebFishEye Height="128" HorizontalAlignment="Left" VerticalAlignment="Bottom" BackgroundMode="ComplexImages" ...> <ISNet_Silverlight_WebAqua:WebFishEye.Buttons> <ISNet_Silverlight_WebAqua:WebFishEyeButton ImageSource="HD.png" Text="Windows HD (C:)"/> <ISNet_Silverlight_WebAqua:WebFishEyeButton.StackButtons> <ISNet_Silverlight_WebAqua:WebFishEyeStackButton ImageSource="Automator.png" Text="Automator"/> </ISNet_Silverlight_WebAqua:WebFishEyeButton.StackButtons> </ISNet_Silverlight_WebAqua:WebFishEyeButton> </ISNet_Silverlight_WebAqua:WebFishEyeButtons> </ISNet_Silverlight_WebAqua:WebFishEye> |
In the new UXDock, the structure is simplified as shown in the following example:
XAML |
Copy Code
|
---|---|
<Intersoft:UXDock x:Name="SampleControl1" Height="128" HorizontalAlignment="Left" VerticalAlignment="Bottom" BackgroundMode="ComplexImages" ...> <Intersoft:UXDockButton Icon="HD.png" Text="Windows HD (C:)" ...> <Intersoft:UXStackItem Icon=" Automator.png " Text="Automator"/> </Intersoft:UXDockButton> </Intersoft:UXDock> |
WebFishEye has WebFishEye.Buttons object that keeps the collection of WebFishEyeButton. Each WebFishEyeButton can have a collection of WebFishEyeButton.StackButtons. As UXDock is redesigned to take advantage of latest Silverlight technology, it does no longer use the WebFishEye.Buttons collection as in the previous version. You can specify a collection of UXDockButton in the content of UXDock directly. A collection of UXStackItem can be specified as the items of a UXDockButton.
To programmatically access the buttons collection of UXDock, use the Items property. For more information about ItemsControl architecture used in UXDock, see Items Control Overview. |
The previous version of WebCoverFlow for Silverlight has structure as shown in the following example:
XAML |
Copy Code
|
---|---|
<ISNet_Silverlight_WebAqua:WebCoverFlow DefaultPicture="defaultPicture.png" ...> <ISNet_Silverlight_WebAqua:WebCoverFlow.Items> <ISNet_Silverlight_WebAqua:WebCoverFlowItem ImageSource="Beach1.jpg" Title="Beach" /> </ISNet_Silverlight_WebAqua:WebCoverFlow.Items> </ISNet_Silverlight_WebAqua:WebCoverFlow> |
In the new UXFlow, the structure is simplified as shown in the following example:
XAML |
Copy Code
|
---|---|
<Intersoft:UXFlow x:Name="SampleControl1" DefaultPicture="defaultPicture.png" ...> <Intersoft:UXFlowItem ImageSource="Beach1.jpg" Title="Beach" /> </Intersoft:UXFlow> |
WebCoverFlow has WebCoverFlow.Items property that contains a collection of WebCoverFlowItem. As UXFlow is redesigned to use latest Silverlight standards, it does no longer require an explicit XAML definition to the Items property, although the Items property is still made available for programmatic access purpose. As seen in the example above, the UXFlowItem can be defined directly inside the UXFlow declaration.
WebFishEye provides three modes in BackgroundMode property: Simple, ComplexImages, and Custom. UXDock now provides two modes in BackgroundMode property: Simple and ComplexImages. Custom background is still supported in UXDock using template.
The following example code shows the definition of complex image background in the WebFishEye control.
Copy Code
|
|
---|---|
<ISNet_Silverlight_WebAqua:WebFishEye Height="128" HorizontalAlignment="Left" VerticalAlignment="Bottom" BackgroundMode="ComplexImages" ...> <ISNet_Silverlight_WebAqua:WebFishEye.BackgroundImageRight> <Image Source="../../Images/Docks/GlassRightGlow.png" Height="81"/> <ISNet_Silverlight_WebAqua:WebFishEye.BackgroundImageRight> <ISNet_Silverlight_WebAqua:WebFishEye.BackgroundImageLeft> <Image Source="../../Images/Docks/GlassRightGlow.png" Height="81"/> <ISNet_Silverlight_WebAqua:WebFishEye.BackgroundImageLeft> <ISNet_Silverlight_WebAqua:WebFishEye.BackgroundImageCenter> <Image Source="../../Images/Docks/GlassRightGlow.png" Height="81"/> <ISNet_Silverlight_WebAqua:WebFishEye.BackgroundImageCenter> </ISNet_Silverlight_WebAqua:WebFishEye> |
In contrast, the following example code shows the definition of complex image background in the UXDock control.
XAML |
Copy Code
|
---|---|
<Intersoft:UXDock x:Name="SampleControl1" BackgroundImageLeft="../../Images/Docks/GlassRightGlow.png" BackgroundImageCenter="../../Images/Docks/GlassRightGlow.png" BackgroundImageRight="../../Images/Docks/GlassRightGlow.png" BackgroundMode="ComplexImages" ...> |
As seen in the above example code, the complex background images are now specified as simple properties which makes it easier to use.
UXDock adds more properties that enable developers to do more customization over Arc stack mode. Five properties that related to Arc stack mode is added in the UXDockButton, which are StackArcItemHeight, StackArcItemWidth, StackArcLaunchOffset, StackArcTextOffset and StackArcTextPosition.
Both UXDock and UXFlow now support drag and drop behavior. This behavior is not supported in the WebFishEye and WebCoverFlow.
For more information about the drag and drop framework in ClientUI, see Drag-drop Framework Overview.
To add a separator in WebFishEye, you define it as WebFishEye button with its Type property set to Separator.
The following example shows the XAML definition of separator in the WebFishEye.
XAML |
Copy Code
|
---|---|
<ISNet_Silverlight_WebAqua:WebFishEyeButton Type="Separator" Opacity="0.2"/> |
In UXDock, the separator is defined as UXDockSeparator object, which is shown in the following example:
XAML |
Copy Code
|
---|---|
<Intersoft:UXDockSeparator Opacity="0.5"/> |
In WebFishEye for Silverlight, the caption of the selected item is displayed as the stack grid header. In UXDock, each stack items contain of image and text. The text of each stack item is displayed at the bottom of the item’s image. In UXDock, the stack grid can have stack grid header text and stack grid footer text such as shown in the following illustration.
WebFishEye Stack Grid |
UXDock Stack Grid |
WebCoverFlow for Silverlight supports data binding to collection type of datasource such as List<T> or IEnumerable type of datasource. The datasource is assigned to ItemSource property at runtime.
In addition to the traditional object data binding, the new UXFlow has supported the most recent databinding pattern such as the MVVM pattern.
The following example code shows the two-way data binding XAML definition using MVVM pattern in the UXFlow.
XAML |
Copy Code
|
---|---|
<Intersoft:UXPage.Resources> <Assets:HotelsViewModel x:Key="HotelsData"/> </Intersoft:UXPage.Resources> <Grid x:Name="LayoutRoot"> <Intersoft:DockPanel FillChildMode="Custom" DataContext="{StaticResource HotelsData}"> <Intersoft:UXFlow x:Name="SampleControl1" BorderBrush="{x:Null}" EnableLoadOnDemand="False" Intersoft:DockPanel.IsFillElement="True" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" MaxHeight="480" ItemsSource="{Binding Hotels}" ImageMemberPath="Hotel.Image" TitleMemberPath="Hotel.Name" SubTitleMemberPath="Hotel.Location" Background="{x:Null}"/> </Intersoft:DockPanel> </Grid> |
To learn more about MVVM pattern support in ClientUI, see MVVM Pattern Overview.
For more information about the new UXDock and UXFlow controls, see UXDock and UXFlow respectively.
For more questions and issues related to migration, please visit ClientUI Community Forum at http://www.intersoftpt.com/Community/ClientUI/.