.
In Depth Banner
Skip Navigation LinksWelcome > In Depth articles

Welcome to In Depth

For many years I have created articles that deal with a simple subject relatively quickly, usually in a single page.

After many requests by my readers, and thanks to you all for the suggestions, I have created a set of in-depth articles that deal with subjects in greater detail and with a lot more code and explanation than I can get onto a single page.

These articles listed here provide free to use source code which can be downloaded in its entirety from links provided on the pages.


Sparse item array collection and grid control

A series of three in-depth articles which show how to create a totally custom collection object and a WPF control that databinds to it.

Finally, I'll show you how to customise that system to accept any objects you like and to create custom data templates to spice the control up.


Non graphical presenter architecture (part 1)

Discover how to create a non graphical presentation layer which enables you to quickly remove one user interface and replace it with another, even on a completely different platform.


GDI+ Canvas control

A scrollable zoomable canvas control suitable for creating drawing and object manipulation surfaces.


Bitmap image flood-fill

See how the old recursive flood fill algorithm gets new life using a .Net stack collection


Simple Draw

A demo application which gives you how to make the event-driven apps more robust!


Extender

Add extended properties to your designer controls


Per Pixel Alpha

Article describing GDI+ alpha-blending in .NET


Debug windows controls

Read on now to discover the right way to go about debugging complex controls at run time and design time.


DirectX Primer

Recently, Microsoft released DirectX9 which has a new set of managed wrappers that enable you to use DirectX through C# or VB.NET applications. Read on..


Customize PropertyGrid

If you ever create applications in which the user has to edit items they have selected, such as graphical elements in a drawing package or objects in a list view, you'll probably have used the PropertyGrid control as a UI element to speed development of what would otherwise be a very complex task.


Text formatter

An article on text formatting in .NET


Managed Shell Extensions

This is the first in a series of occasional articles that will create some handy shell-extension objects in managed code. Look out for more in future editions.


Native Windows

The classes and controls provided in Windows Forms are well suited to most applications.  There are however, a few situations when a non-standard window is required for which Windows Forms does not have an answer.  For example, a custom made tool-tip window is very difficult to create using the standard Windows Forms repertoire.


Type Editor

The property grid is one of the most useful controls when creating applications that need to provide a simple to use yet powerful method of editing any object model.


Non-Standard UI

Windows has a certain look and feel but applications that need to have a very individual appearance can be created using GDI+ and some window region goodness.


Design Time Properties

 

The property grid is one of the most useful controls when creating applications that need to provide a simple to use yet powerful method of editing any object model.


Non-Client operations

Windows Forms controls provide a 3D or flat appearance as standard and the framework provides no other method of changing the appearance of controls and apparently do not enable users to customize their appearance other than through handling the Paint event and drawing directly on the control surface.


Graphics Stack

Graphics systems which maintain information about geometric shapes or graphical objects that maybe interacted with are known as retained-mode systems because they retain information about all the graphical objects in an object model.


Detail View Customization

When I originally embarked upon this article I imagined that the process of creating owner-drawn ListView derivatives in Windows Forms would be quite cut and dried. As the great Rabbie Burns once said "The best laid plans of mice and men often go awry."


Full ListView Customization

It's possible to create a cool and distinctive look using this method it has certain disadvantages.


Transition Effects

One of the coolest things you can do with GDI+ is mess about with images. Image transition suites are big business with some packages selling for almost a thousand dollars.


Easy Configuration Files

 

Creating config files is a useful technique but you have to decide what to configure by hand. Using reflection, you can create configurations that can maintain application state very easily.


Design Time Mouse

The property grid used at design time is a great tool but sometime it'd be great just to grab a little handle on a control to tweak a property that was wholly visual in nature.


Layered Windows

Windows Forms applications regularly use the LayeredWindow API when translucent forms are used but the control over it is rudimentary only allowing you to set the opacity of a given window.


Snap to Grid

So many people seem to struggle over this simple functionality that I thought it would be a great idea to create a little base class that shoehorns snap to grid behavior into the mouse handling methods and events.


LED Displays

One of the most popular types of display is the old seven segment LED used for many years on video-recorders, watches and just about every other electronic gizmo that requires a numeric display.


LED Clock

An LED digital clock is one of the classic forms of time display. Using the LED control created earlier, you can put together a composite control that displays time very easily.


LED Bar

The LEDBar aggregates a number of LEDControl objects to make a display that can show any numeric information.


Image alpha masks

How we can use the simple gradient generating brushes to create alpha blend masks and make effects like the Windows Drag-Image .

Copyright © Bob Powell 2000-2013.  All rights reserved.