Preventing the Pivot or Panorama controls from scrolling

The Panorama and Pivot are great, defining assets of the Windows Phone 7 user experience. Their main role is to display a wealth of information panning horizontally, and eventually enable item selection. Even though these controls are not designed to handle complex user input, you may stumble upon some scenarios where it might be necessary….

16

Executing a command from an event of your choice

To follow up on a previous post, I’m going to describe how to execute a command from any event raised by a graphical control. For this, I’ll leverage the MVVM pattern as well as the Expression Blend SDK (freely available here). The SDK provides behaviors (triggers and actions) that allow even further loosening between view…

0

Improving keyboard scrolling speed in selector controls (ListBox, DataGrids…) or AutoCompleteBox performance using throttling

One of the most frequent cause of slow scrolling lists is the cost of loading the data related to the currently selected item/row. When a user holds his arrow keys down to scroll, the selected item changes very quickly, potentially triggering a large amount of expensive queries to the data source (wether it be web…

0

Silverlight/WPF debugging: Determining the focused element

When developing complex WPF or Silverlight applications, you may stumble upon the problem of not knowing where your keyboard focus is. This is also known as the “But where am I typing?!” problem, and occurs more often than not on composite applications. Silverlight You can determine which element has keyboard focus within Silverlight via the…

1

ArchiTech podcast: Discussion about RIAs

Benjamin Guinebertière recently invited me to his ArchiTech podcast (in French), so that we could discuss Rich Internet Applications (RIA). We discuss the reasons why RIAs exist, how they are developped, and which Microsoft technologies can be leveraged to address them: mainly Silverlight, WPF, Visual Studio and Expression. You’ll find the podcast (in French, 45′) at the following address : http://blogs.msdn.com/b/architech/archive/2010/07/09/architech-5-applications-internet-riches-ria.aspx Bonne écoute !

0

Statically getting the UI thread in Silverlight

Like you probably already know, all changes to an object that affects the visual tree has to be done form the UI thread. The Dispatcher, that all DependencyObjects expose, allow the execution of code on this very thread through the BeginInvoke method. Sometimes though no DependencyObject is dynamically available (I just had the case with…

0

Commanding with Silverlight 4

One of Silverlight 4’s new feature is commanding support. Commanding and the MVVM pattern allow clean separation of XAML and C# code: an action can be associated to a control using the {Binding} markup, just as it is done with data. Silverlight 4’s buttons support commanding through the Command property. The following example shows how…

0

Introduction to WCF Data Services

Benoit Sarie, my franchouillardest colleague, has written a series of post about WCF Data Services (formerly known as ADO.NET Data Services). It starts off with setting up a WCFDS environment, and quickly delves into pragmatic topics such as querying, intercepting requests and of course consuming the exposed data from a rich client. Since I can…

0

Windows Live Writer Silverlight App Plugin

I’ve been blogging about WPF and Silverlight using Windows Live Writer (WLW) for quite a while now. But there’s something I found really awkward : I never actually had some Silverlight running within a post! Since a XAP is worth way more than static screenshots, I got to work and three hours later I had…

0

Get whole sets of vector icons using … Fonts!

Finding icons is a tedious task for most developers. In this post I will demonstrate how to use “symbolic” fonts in your WPF or Silverlight applications, which provide the following benefits: Vector icons that are smoothly scalable Potentially better performance, using the platforms’ optimized text rendering stack Get a whole set of icons in single…

0