• Products
  • Download
  • Purchase
  • Support
  • Company
Actipro Software company logo
Twitter Follow Actipro RSS Subscribe (RSS Feed)

The Actipro Blog

Tag Cloud

  • aero
  • blog
  • docking
  • editors
  • gauge
  • intelliprompt
  • navigation
  • propertygrid
  • ribbon
  • shared library
  • silverlight
  • syntaxeditor
  • themes
  • views
  • winforms
  • wpf

Latest Twitter News

November 21, 2011 at 11:14 AM
#WPF Studio 2011.2 is out now! Includes enhanced themes for native WPF conrtols and new SyntaxEditor features. http://t.co/uEMCaGPG

September 26, 2011 at 1:25 PM
If you'd like to see our #WPF / #Silverlight SyntaxEditor code editor control ported to Metro, provide feedback here: http://t.co/xXBNIDTi

September 15, 2011 at 8:31 PM
If you want to see SyntaxEditor eventually show up in Win8's #xaml UI, be sure to add your support to this MS thread: http://t.co/FBjz6TuC

August 15, 2011 at 1:47 PM
New SyntaxEditor IntelliPrompt parameter info feature docs/samples ready for the 2011.2 #WPF and #Silverlight releases. http://t.co/ezoYIjv

August 2, 2011 at 2:40 PM
First look at new automated IntelliPrompt parameter info coming to our C#/VB editor control in #WPF / #Silverlight http://t.co/CUz6O1T

Twitter Follow us on Twitter

Month List

  • 2012
    • February (2)
    • January (2)
  • 2011
    • December (2)
    • November (7)
    • October (2)
    • September (1)
    • August (5)
    • July (3)
    • June (6)
    • May (5)
    • April (8)
    • March (4)
    • February (5)
    • January (9)
  • 2010
    • December (9)
    • November (10)
    • October (4)
    • September (8)
    • August (12)
    • July (9)
    • June (7)
    • May (6)
    • April (7)
    • March (6)
    • February (6)
    • January (4)
  • 2009
    • December (2)
    • November (2)
    • October (12)
    • September (3)
    • August (11)
    • July (10)
    • June (6)
    • May (3)
    • April (7)
    • March (6)
    • February (8)
    • January (10)
  • 2008
    • December (10)
    • November (2)
    • October (3)
    • September (5)
    • August (5)
    • July (8)
    • June (4)
    • May (4)
    • April (10)
    • March (8)
    • February (1)
    • January (2)

Category List

  • RSS feed for ActiproActipro (288)
  • RSS feed for Blog SummaryBlog Summary (13)
  • RSS feed for GeneralGeneral (34)
  • RSS feed for In developmentIn development (149)
  • RSS feed for New featuresNew features (140)
  • RSS feed for New productNew product (30)
  • RSS feed for PromotionPromotion (2)
  • RSS feed for SilverlightSilverlight (71)
  • RSS feed for Tips and tricksTips and tricks (4)
  • RSS feed for Visual Studio 2008Visual Studio 2008 (2)
  • RSS feed for Windows FormsWindows Forms (19)
  • RSS feed for Windows VistaWindows Vista (10)
  • RSS feed for WPFWPF (235)
  • RSS feed for XAMLXAML (23)

About Us

Actipro Software is a leading provider of .NET user interface controls for the WPF, Silverlight, and WinForms frameworks, and is most well-known for their SyntaxEditor syntax-highlighting code editor control.

Please take some time to learn more about us and our product offerings.

The future of WPF, Silverlight, and HTML5 - Are they dead?

November 3, 2010 at 2:49 AM
by Bill Henning (Actipro)

As I’m sure you are all aware, last week’s PDC 2010 conference set off a firestorm of tweets and news articles talking about how Silverlight is dead.  We read these articles and scratched our heads, thinking that this goes against everything Microsoft has been preaching the last couple years.  So what gives? 

In this post, we’re going to straighten things out and will:

  • Review how this all came about
  • See Microsoft’s response and will discuss feedback we’ve gotten directly from contacts at Microsoft on this issue
  • Show how these technologies are actually quite the opposite of dead, and are very much going to thrive moving forward
  • Discuss the pros/cons of each technology and which technology is appropriate for various scenarios
  • Talk about our commitment to the technologies

Read on to learn the future of WPF, Silverlight, and HTML5.  The quick summary is, they are definitely NOT dead.

“Silverlight is dead” – How did this start?

The firestorm of claims that Silverlight is dead started for two reasons: The lack of presence of Silverlight at PDC, and an interview with a key Microsoft officer.

PDC – Where’s Silverlight?

At this year’s PDC, Silverlight was very noticeably absent.  For a technology that Microsoft has been pushed extremely hard the past couple years with multiple major releases per year, where was it?  There were no sessions on Silverlight 5 and barely a mention of Silverlight in the kick-off keynote speech.  Instead, the keynote focused on HTML5.

Nearly everyone attending PDC or watching remotely was expecting a strong showing for Silverlight at the PDC, but they got next to nothing.  Side note, all of us watching remotely were using a Silverlight application to view the sessions! :)

The interview

The second trigger for all of this was the interview Mary Jo Foley from ZDNet did with Bob Muglia, Microsoft President in charge of the server and tools business, that was published the day after the PDC keynote.  The important portion of this article is included below:

“Silverlight is our development platform for Windows Phone,” he said. Silverlight also has some “sweet spots” in media and line-of-business applications, he said.

But when it comes to touting Silverlight as Microsoft’s vehicle for delivering a cross-platform runtime, “our strategy has shifted,” Muglia told me.

Silverlight will continue to be a cross-platform solution, working on a variety of operating system/browser platforms, going forward, he said. “But HTML is the only true cross platform solution for everything, including (Apple’s) iOS platform,” Muglia said.

The result

Add these two things together and it’s rather easy to see how everyone perceived this as Microsoft effectively saying that Silverlight will be used on WinPhone and in certain scenarios on the web for delivering media.  Articles were posted all over the web claiming that Microsoft killed Silverlight.

Microsoft’s response

Bob Muglia’s follow-up

Bob Muglia posted an enlightening response on the Silverlight team blog a couple days later, recognizing the controversy that came about from PDC and the interview.  In the blog post he emphasized these three points:

  1. Silverlight is very important and strategic to Microsoft.
  2. We’re working hard on the next release of Silverlight, and it will continue to be cross-browser and cross-platform, and run on Windows and Mac.
  3. Silverlight is a core application development platform for Windows, and it’s the development platform for Windows Phone.

The rest of his post talks about Microsoft’s updated strategy for when to use Silverlight.  We’ll get into this more below.

Our contacts at Microsoft

We’ve also been in direct contact with various program managers at Microsoft to learn what their take on all this is.  The replies we’ve received have been directly in line with what Bob explained in his follow-up.

Specifically they all indicated that Microsoft is firmly committed to the future of Silverlight and are actively working on the next Silverlight and WPF versions.

Silverlight has never been meant to replace HTML.  It has been designed to co-exist and work with HTML, and to make development of robust cross-platform client apps and advanced media delivery easy.

The future of each technology, with some pros and cons

WPF

WPF is such a well-designed framework for building user interfaces.  While it certainly has a bit of a learning curve for those who have only worked in older frameworks like WinForms, once you get past that and “get it”, it’s easy to see the power and flexibility you have with styles, templates, data binding, animation, commands, custom control creation, etc.  The list goes on and on.  XAML complements the framework by allowing complex user interfaces to be expressed in a clean XML format.  Other than at the root Window and popup levels, everything is completely implemented in managed code.  Compare this to WinForms where a good chunk of the WinForms framework is wrappers around Win32.  I can’t count how many customers have told us they absolutely love WPF after getting past the initial learning hurdles.

WPF

WPF is now on at least two-thirds of today’s Windows PCs.  Microsoft has invested heavily in WPF and has moved many of its key applications to be built on it: Visual Studio, the Expression suite, Web Matrix, and more are coming soon.  Obviously they wouldn’t do this if they didn’t believe WPF was the future of Windows desktop development.  The benefit to all us developers is that by Microsoft actually using the platform for these large key apps, they run into WPF’s various shortcomings and are forced to address them.

For instance, Visual Studio 2010 triggered the long awaited WPF4 text rendering/clarity improvements that should have been there early in the WPF dev cycle, and used to be the number one complaint/turn-off about the platform.  I know that we’ve received numerous comments in past years about how a developer loved WPF but the text rendering forced them to go back to WinForms or C.  VS 2010 got that fixed.

Another thing you may notice in Visual Studio is that there are no more standard MDI windows as an option like there were in previous Visual Studio versions that were not WPF-based.  While part of this may be due to time constraints, anyone who’s actually worked on docking windows in WPF like us knows that the core cause is the dreaded “airspace” issue where any interop content (web browser, WinForms controls, ActiveX controls, etc.) will always appear on top of WPF content in the same Window/popup.  The interop content can’t be clipped, which is a requirement to support standard MDI.  At PDC, Rob Relyea talked about how they are finally addressing that issue for WPF vNext.  Rob also talked about other exciting new features coming to WPF vNext. 

Publicly, Microsoft does need to do a better job of getting the message out that WPF is their platform of choice for Windows desktop applications.  Similar to how Silverlight was missing from most of PDC, WPF has been missing from most of the last several conferences as well.  Why they aren’t actively promoting such a great framework is beyond me, but from everything we hear from our talks with Microsoft employees and by how Microsoft itself is shifting to WPF with its apps, it’s clear that their commitment is there.  You just need to dig a little to see it. 

WPF will be around and supported for a very, very long time to come.

Silverlight

Silverlight is a subset of the WPF platform that focuses on the key ingredients needed to build rich Internet applications, provide advanced media delivery, and is the platform used by the upcoming Windows Phones.  Since it is based off of WPF design, it has a similar learning curve to WPF but may be a bit easier to grasp for newbies since there is less “stuff” available to you and thus, less to learn.

As mentioned above, Silverlight was never intended to replace HTML.  However it does certain things better than current web technologies can.  And it is definitely easier to develop complex applications with advanced user experiences in than using HTML and related technologies.  If you are making an immersive cross-browser application and want to harness features like XAML for UI layout, rich drawing and animation capabilities, a full set of extensible controls that easily be styled, some of the best media delivery features available, etc., it’s a no-brainer that Silverlight is a great platform to choose.  You’ll end up with a great product that has more functionality and was completed many times faster than coding it in web technologies.

Silverlight

That being said, Silverlight still does have some drawbacks.  First, being a subset of WPF, if you come from a WPF background, you can sometimes get extremely frustrated when you come across various missing feature areas that you took for granted in WPF.  It’s easier to move from Silverlight to WPF than from WPF to Silverlight.  The good news is that Microsoft’s message has been that of convergence with WPF over time.  Recent announcements of the portable library project, which allows sharing of code across .NET platforms, further support this.

Second, the debugging experience of Silverlight apps is sometimes horrible, especially when you make a XAML error and get a meaningless error number that gives no information whatsoever on what the cause of the error is.  This is something that absolutely needs fixing.

Third, while it does support all the major desktop browsers, Silverlight is not supported on mobile platforms like Android and iOS.  This is increasingly important especially as we move more towards more mobile lifestyles with smart phones and tablets.

Even with these drawbacks, Silverlight is firmly being backed by Microsoft as a platform of choice for many development scenarios.  It is by no means dead or dying, and there will be a new version of Silverlight coming in 2011.  Since the platform is maturing, new versions won’t be coming out as fast as they used to.  But that is the nature of software development and is to be expected.  It’s a safe bet to use Silverlight for your apps.

HTML5

HTML5 is the evolution of the web technologies used by modern browsers.  New features include advanced audio/video delivery, custom drawing via a canvas, new semantic-oriented tags, and various other features. 

These features are still in their infancy and are still being massaged into what will be confirmed as the official standard a few years from now.  Browsers have already started adding support for the preliminary specs though, and HTML5 is being driven by all the major players including Microsoft, Google, and Apple.  It’s the one place you can find all these companies actually working together.

Html5

The most important benefit of HTML is that it is (and new HTML5 features will be) supported everywhere, on all browsers on all computers and devices.  The point that Microsoft made publicly at PDC and in the Bob Muglia interview is that you can’t ignore that, you have to embrace it.  And that is what Microsoft is finally doing with its IE9 enhancements.

Our commitment

Actipro Software, a leader in the WPF UI control realm, firmly believes in the future of all three of these great technologies. 

Our WPF Studio user interface control suite has innovative and unique controls and features you won’t find elsewhere, everything from advanced docking windows and MDI to property grids and gauges.  Our acclaimed SyntaxEditor syntax-highlighting code editor control that allows you to easily embed a Visual Studio-like code editor in your apps is available for WPF, Silverlight, and WinForms. 

We are focused on continuing to enhance our existing products and to expand our product lines for the WPF and Silverlight platforms moving forward.

We also will be watching HTML5 with interest as it develops.  A Javascript-based SyntaxEditor in the future?  Never say never.

Summary

To summarize, WPF and Silverlight are here to stay.  Microsoft has repeatedly confirmed that it is committed to enhancing both platforms and is building its key apps in WPF.  The developer community is shifting towards WPF and Silverlight more and more all the time from older frameworks.

There is plenty room for WPF, Silverlight, and HTML5 in the modern development world to co-exist as each platform has a role.  Sure the roles sometimes may overlap in some areas, but this gives you the benefit of being able to choose which platform to use based on your needs.  Will you need the more desktop-oriented WPF, the more RIA-oriented Silverlight, or the universally-supported HTML5?

Regardless of which you choose, rest assured that Actipro will be there with you helping to improve your user experience.

Please take some time to learn more about us and our products at:

www.actiprosoftware.com

We’d love to hear your thoughts and comments.

Tags: wpf, silverlight
Filed under: Actipro, General, WPF, Silverlight, XAML
Submit to DotNetKicks...
Permalink | Comments (6)

Next SyntaxEditor for WPF build gets mouse hover and IntelliPrompt quick info providers

September 10, 2009 at 2:43 AM
by Bill Henning (Actipro)

One highly requested feature for SyntaxEditor for WPF is the ability to be notified when a mouse hover occurs so that IntelliPrompt quick info tips can be displayed in response.  Since WPF doesn’t include a mouse hover event, we implemented one ourselves that fires for editor views.

We didn’t stop there though.  We wanted to make it simple for a language to provide quick info popups in response to mouse hover events.  Thus we came up with the new IQuickInfoProvider service.  This service can be registered with a language.  It has three methods on it:

   1: object GetContext(IHitTestResult hitTestResult);
   2: object GetContext(IEditorView view, int offset);
   3: void RequestSession(IEditorView view, object context, bool canTrackMouse);

We offer a QuickInfoProviderBase abstract class that should be used as a base class for any implementations of IQuickInfoProvider that you create.  QuickInfoProviderBase fully implements mouse tracking such that when a mouse hover occurs over an editor view, it calls the GetContext overload that accepts an IHitTestResult.  The IHitTestResult comes from our previously-discussed hit testing feature.  The default implementation of this overload is to call the other GetContext overload if the hit is over a character in the text area.

The GetContext methods should return some object that gives detail about what is at the specified hit or offset, or a null reference if it is not important.  This could be some object as simple as an IToken or some more complex context object.  The important part is that it supports value equality (Equals method implementation) since as the mouse moves, the context returned by GetContext is compared against the context of any already-open quick info session to see if the existing session should be closed or kept open. 

By using GetContext, the quick info provider knows when the mouse moves outside of the the region that is appropriate to an already-open quick info session, and when to open a new quick info session.  Once a new quick info session is needed, the RequestSession method is called.  It is passed the editor view instance, the context object returned by GetContext, and whether the mouse should be tracked (false when quick info is displayed in response to a toolbar button click for example).

Your RequestSession implementations are expected to create a new quick info session, store the passed context in the session, generate content for the quick info popup, and open the session (display the popup).

By using this new provider mechanism, it’s very easy for languages to automatically support quick info display with a minimal amount of work.  All the mouse handling is done for you.  This feature will be in the next build and we’ve updated our quick info sample to show how easy it is to use.

Tags: wpf, syntaxeditor, intelliprompt
Filed under: Actipro, New features, XAML
Submit to DotNetKicks...
Permalink | Comments (2)

WPF Studio 2009.1 customers can now download default control styles

June 18, 2009 at 5:57 AM
by Bill Henning (Actipro)

We’ve just enhanced our Organization Purchases page so that customers of our WPF Studio 2009.1 suite can download a ZIP containing the default styles and templates for the controls.

DownloadStyles

Note the new link highlighted above that you’ll see in your account if you own WPF Studio 2009.1.  Click that link to download a ZIP that has all the XAML source files used in the various WPF Studio products.  These XAML source files define the brushes, templates and other resources that are used by the products.

Enjoy!

Tags: wpf, themes, web site
Filed under: Actipro, General, XAML, WPF
Submit to DotNetKicks...
Permalink | Comments (1)

A first look at a possible XAML Icons product and browser application

January 2, 2009 at 6:04 PM
by Bill Henning (Actipro)

Happy new year everyone.  As mentioned in this previous post, we have been looking into whether customers would like to see us provide XAML icons.  Right now we offer a very high quality raster icons product (Actipro Icons).  This XAML Icons product would be similar however the icons would be DrawingImage-based so that they could easily be used anywhere in WPF that has an ImageSource property.

You’d simply do something like this to use an icon (assuming “Paste32” is a key for one of our DrawingImages that has been exported into your application):

<Image Width=”32” Height=”32” Scale=”Uniform” Source=”{StaticResource Paste32}” />

The Actipro XAML Icon Browser

Without further ado, I’d like to present the icon browser application we’ve put together to view the icons and export them for usage.

Xaml256

The Icon Browser showing a variation of the sample Paste icon that is designed to look best around 256x256 size

The browser is really easy to use.  On the left you select the Target Size.  There are 7 size options, meaning we’ve designed 7 variations of each icon, where each variation is meant to be used at or close to the selected target size.  Target sizes range from 16x16 up through 256x256.

When a target size is selected all the available icons in that size are displayed in the list on the right.  Please note that the sampler only contains the 7 Paste icon variations.  More icons will be included in the Sampler if we do decide to pursue this product.

You can use sliders to scale and rotate the icons.  This really shows off how good they continue to look, even when animation effects have been applied.

Xaml32

The Paste icon designed to look best around 32x32 size, scaled up to 400% size and rotated 17 degrees

When you are ready to export icons for usage in your application, just select the icons to export in the list.  Then click the Export Selected button.  This exports them all to a file that you designate.  The file contains a ResourceDictionary so you simply add it to your own application, merge in the ResourceDictionary with your Application.Resources and you are good to go.

From that point on you reference the icons by their key name, using StaticResource as mentioned above.

Download the Sampler and send us your comments

We’d appreciate it if you could download the free sampler and let us know what you think, both about the icon quality as well as the Icon Browser application.  Please post comments here or email them over.

Download the beta version of the Sampler now

 

Thanks for your assistance!  Whether we pursue this product or not will be based on your feedback.

Tags: icons, media
Filed under: Actipro, In development, WPF, XAML
Submit to DotNetKicks...
Permalink | Comments (8)

New PropertyGrid features and other WPF Studio build 471 updates

October 3, 2008 at 1:53 AM
by Bill Henning (Actipro)

The latest maintenance release of Actipro WPF Studio v4.5.0471 includes several large updates to the PropertyGrid product, several small updates to other WPF Studio products, and a number of brand new QuickStarts for the Sample Browser.

PropertyGrid Features

Filters

The first new PropertyGrid feature is the ability to quickly and easily filter the items presented. We've included several built-in filters for string and boolean properties, as well as filter groups. String filters support everything from Equals to regular expressions and groups can be used to combine any number of filters using AND/OR logic.

PropertyGridBeforeFilter PropertyGridAfterFilter

Shows the PropertyGrid before (left) and after (right) text is typed to filter out properties by name

We designed the filters so that they can readily be used directly from XAML, including support for data binding. Custom filters can be used when the built-in filters are not enough. 

Filters allow users to quickly find a specific item, or they can be used to permanently exclude items from being displayed. 

A common use of filters is to provide a TextBox above the property grid.  When the end user types in text, only the properties whose names contain the text are displayed.  This is displayed in the screenshot above.

Read-Only State

We have also added a read-only state to the PropertyGrid, which is configured using the new IsReadOnly property. Using this new property, all the value editors in the PropertyGrid can be set to prevent changes.

PropertyGridReadOnly

PropertyGrid with the global IsReadOnly flag set to true; note all values are disabled in this mode

Memory Usage and Other Fixes

Several memory issues and other fixes found since the initial product release are also included in this release.

New Demos and QuickStarts

We've added five completely new demos and QuickStarts to this release, along with updating two of our existing QuickStarts with new functionality.

Docking & MDI Custom Docking Windows

We've had several requests to allow our DocumentWindow and ToolWindow controls to be inherited so that they can be defined as their own classes with separate XAML.  There was a core WPF issue that prevented this in the past (styles wouldn't be applied to the inherited controls) however we've found a workaround for this issue and implemented it in build 471.

In addition, we've added a new QuickStart that shows exactly how to define custom DocumentWindow and ToolWindow classes and reuse them in a DockSite.

MonthCalendar Day Highlighting

Another request we've gotten from several customers is to be able to highlight certain days within our MonthCalendar control.  In build 471, we show the implementation of a custom class that highlights certain days. 

MonthCalendar

The MonthCalendar control showing several types of highlighted days

The same concept could be used to highlight holidays, birthdays, etc. in your own applications.

Enjoy the update!

Tags: wpf, propertygrid, docking, shared library
Filed under: Actipro, WPF, New features, XAML
Submit to DotNetKicks...
Permalink | Comments (0)

Sneak Peek: Gauge for WPF - Flight Simulation Gauges

July 8, 2008 at 1:55 AM
by Bill Henning (Actipro)

We're just about ready to launch WPF Studio v4.0, probably in the next day or two.  Keep an eye on our site for the official release!

As another sample of what our gauges in WPF Studio v4.0 can do, here is a flight simulation gauges gallery that shows a collage of gauge controls related to a flight simulation.

 FlightSimulation

Flight simulation gauges that can be fully data bound

The full XAML source for these control samples are in our v4.0 Sample Browser.

Tags: wpf, gauge
Filed under: Actipro, In development, WPF, XAML
Submit to DotNetKicks...
Permalink | Comments (1)

First Look: Gauge for WPF

May 30, 2008 at 2:42 AM
by Bill Henning (Actipro)

We've been hard at work over here on several new products for WPF Studio.  The first that I've been posting about is the WPF Docking and MDI product.  The Docking product is one of the new products that will be part of WPF Studio v4.0.

But we also have one other unannounced product coming to WPF Studio v4.0, and that is Actipro Gauge for WPF.  We're very excited to have teamed up with NextWave to help enhance their forthcoming gauge product and include a split of the code as an Actipro branded product, and part of WPF Studio.

Gauge for WPF Features

Linear

A linear gauge... use to represent any sort of linear values, such as in meters

Gauge for WPF supports the creation of nearly any kind of gauge that you can imagine.  Basic gauge types include circular, linear, and digital gauges.  It includes a wealth of configurable properties, allowing you to completely customize the look and capabilities of your gauges.

Circular

A circular gauge... use to create any sort of instrumentation, meter, or knob

What can you do build with Gauge for WPF? 

  • Electronic measurement gauges
  • Medical measurement gauges
  • Industrial measurement gauges
  • Knobs
  • Digital panels
  • Clocks and watches
  • Thermometers
  • Compasses
  • Vehicle dashboards
  • Flight simulation dashboards
  • Any other sort of circular, linear, or digital gauge

Digital

A digital gauge... use to create clocks or any type of digital readout

What are some common use examples for these sorts of gauges?

  • Business intelligence dashboards
  • Executive summary dashboards
  • Industrial or medical controls and readouts
  • Software interaction with electronic equipment
  • Simple digital readouts
  • Vehicle simulation

Availability

Both Docking for WPF and Gauge for WPF will be included in Actipro WPF Studio v4.0.  We expect final release in the coming weeks.

Tags: wpf, gauge
Filed under: Actipro, In development, WPF, XAML
Submit to DotNetKicks...
Permalink | Comments (1)

How to prevent blurry images and lines in WPF

May 14, 2008 at 11:26 PM
by Bill Henning (Actipro)

In our latest maintenance release of WPF Studio's Shared Library v3.5.0427, we have added a simple decorator class called PixelSnapper.

The PixelSnapper decorator basically snaps the measurement of its child content to integer values, thereby helping to prevent blurry images and borders that may appear after it.

The Issue: Blurry Images and Lines in WPF

A problem in WPF is that images and borders can become very blurry when they are positioned on non-pixel boundaries.  This makes the application appear to be poorly designed to end users even though technically, the developer did nothing wrong.

How does this scenario occur?  Very easily in fact.  Say you have a standard WPF Menu at the top of your Window.  The text in the menu items may measure to 12.5 pixels high.  Then lets assume that we have 2 pixels of padding.  Now we have a Menu that is 16.5 pixels high and the problem has been introduced.

The control directly under the Menu will start at vertical location 16.5.  If this control is an Image, all the pixels in the image will appear blurry in the vertical direction since each lies half on one pixel and half on the one below it.  Even setting SnapsToDevicePixels to true does nothing to correct the issue.

A Visual Sample

In the screenshot below, we have a Border with a PixelSnapper surrounding it.  In the left sample, the PixelSnapper has snapped its contents to integers, the default behavior.  In the right sample, the PixelSnapper functionality has been disabled.

PixelSnapper

A demonstration of the differences between using and not using PixelSnapper

Note how the images, which are laid out after the Border, are blurry when not using PixelSnapper functionality due to the decimal size of the Border.

Effective Use of PixelSnapper

Where should you use PixelSnapper?  Generally, text elements like TextBlock controls are the only ones that will measure to decimal values.  So any time you have a text control in your UI and that control will affect the layout of other controls, we recommend you surround it with a PixelSnapper in your XAML.  This will keep everything in your UI on pixel boundaries, enabling images and lines to remain crisp and clear.

Several Options

PixelSnapper includes options for controlling how the separate horizontal and vertical measurements are rounded.   Options for each include None, Floor, Ceiling, and Round.

Tags: wpf, shared library
Filed under: Actipro, WPF, New features, XAML
Submit to DotNetKicks...
Permalink | Comments (4)

Sneak Peek: Docking for WPF (Part 2 - XBAP Functionality)

May 13, 2008 at 8:44 AM
by Bill Henning (Actipro)

This is the second sneak peek for the forthcoming Docking for WPF product that will be added to WPF Studio upon completion. 

The runtime functionality is progressing very well.  We have been getting questions from customers as to the XBAP capabilities of the docking windows.  There's no better to relate these than to show a live screenshot.

Docking

The docking functionality in an XBAP, even with support for floating windows

The screenshot above shows Docking for WPF being hosted in an XBAP browser application.  To create the screenshot we started with a default layout that was created in XAML and then at run-time, dragged the Solution Explorer tab to a floating location. 

Docking for WPF uses a custom control class that mimics Window controls but can be used in contexts like XBAPs.  It supports all the main functionality found in Window such as resizing, etc.  By using this control, we can support floating tool windows in XBAP applications.  They even have nice outer drop shadows to give them some depth.

Look for more posts on Docking for WPF development coming soon!

Tags: wpf, docking
Filed under: Actipro, In development, WPF, XAML
Submit to DotNetKicks...
Permalink | Comments (0)

First Look: Breadcrumb for WPF

April 14, 2008 at 1:28 AM
by Bill Henning (Actipro)

The last major control that will be added to our Navigation for WPF product in the upcoming WPF Studio v3.5 maintenance release is the Actipro Breadcrumb control.  The Breadcrumb concept was introduced in Windows Vista to replace the old style of address bar. 

Breadcrumb
The Breadcrumb control

The Breadcrumb control is essentially a condensed version of a TreeView.  Instead of showing a full hierarchy, only the selected path down the tree is displayed.  We've put a lot of work into this control to make sure it has all the Windows Vista features along with some additional ones.

Drop-Down Selection

When the drop-down arrow next to an item is clicked, a popup menu displays containing the child nodes.  Simply click on a child node to select it.

Overflow

When the width of the Breadcrumb is not large enough to support the display of all the items, a chevron button appears at the left side of the Breadcrumb.  Clicking the button shows a menu containing access to all the hidden parent nodes.

BCOverflow

The Breadcrumb with an overflow menu displayed... the top portion is the stack of overflowed items, and the bottom portion is the list of items for the root minimized Desktop node 

Auto-Minimize

Breadcrumb can be configured to auto-hide any number of nodes at the top of the hierarchy when child nodes are selected.  This behavior defaults to hiding only the root node.  For example, in a file system when you select something below the Desktop, the Desktop node minimizes but is fully accessible from a drop-down button that is displayed in its place.  This allows you to hide nodes that aren't commonly used but still keep them accessible.

Tail Items

Tail items are a really neat feature that is unique to Actipro Breadcrumb.  Not even Vista's Breadcrumb has it.  By default, the last item displayed is the selected item.  However you can configure the Breadcrumb to display any number of tail items. 

BCProgressiveFade

The Breadcrumb showing a progressive fade feature for tail items 

As an example, say you drill down to a leaf node in your tree.  Then you click a parent node item to select the parent.  If tail items are enabled, the previously-selected leaf node will still be visible although with a faded appearance.  This allows end users to quickly jump back to a previously-selected child node.

Edit Mode

By clicking on the icon at the left of the Breadcrumb, you can jump into "edit" mode.  In this mode, the node items disappear and are replaced by a TextBox where you can enter the full path to the desired node directly. 

BCEditMode

The Breadcrumb showing an active edit mode

You have total control over how the text path is converted to a node path.

Action Buttons

Custom action buttons may be added to the right side of the control.  These can be anything you wish, however for proper usage you will want to have their purpose be related to the nodes represented in the Breadcrumb.

Progress Bar

Just like Vista's Breadcrumb, Actipro's BreadCrumb fully supports a progress bar embedded in the background of the control.  You can optionally use this to reflect loading progress when a new node is selected.  It uses our AnimatedProgressBar control that was described in a previous blog post. 

 BCProgressBar

The Breadcrumb showing a progress bar in its background, indicating to the end user that an operation is in progress

Features include animated smooth progress transitions, multiple states (green, yellow, red), and more.

Themes

Breadcrumb supports multiple built-in themes, everything from Windows Classic to Vista.

We are currently working on the samples and documentation for Breadcrumb, and expect to have it released in the next several days.

Tags: wpf, breadcrumb, navigation
Filed under: Actipro, In development, WPF, Windows Vista, XAML
Submit to DotNetKicks...
Permalink | Comments (2)
<< Previous posts
Copyright © 1999-2012 Actipro Software LLC. All rights reserved.
Home Actipro Software | Products | Download | Contact Us