WPF: Styling the Expander Control

I recently needed to style a WPF expander control for a prototype project. Our team’s UX designer came up with a nice visual design.    So, I began to build my prototype and match his visual style (mocked up in Visio) in WPF.   I thought it would be easy…   it was, once I spent all morning …


BizzySpinner 2 – A WPF Spinning Busy State Indicator (with source)

I’ve made a key improvement to my BizzySpinner control form my last post.  It now starts and stop smoothly instead of abruptly.  This is quite visually attractive.  But it was somewhat non-trivial to do.   In my first example, I had a single simple animation that was either running or stopped.  The animation behavior is now…


BizzySpinner – A WPF Spinning Busy Sate Indicator (with source)

I’ve been working on a pet project that does a lot of network I/O and database queries.   One of the things I need to do is run long running things in the background – off the UI thread and keep the UI responsive.  So, I’ve built a spinning busy state indicator.  I’ve included the source…


StackOverflow answer – why learn multi-core programming? #2

In my last post I talked about how multi-threading can be used to improve responsiveness while loading a file.    I’ve put together a sample program (source included) that shows how to do this in C# 3.0, .NET 3.5, and WPF using Visual Studio 2008.  You can find a zip file with a complete project attached….


Beyond Hello World - Update 5, TreeMap Control Working, Perf Issues

CLCV V5 now has a fully working TreeMap control that zooms, supports mouse over events and looks pretty good.  The regions are laid out with the Squarified TreeMap algorithm.  Even better, the tree map itself scales to large numbers of nodes – easily 100’s of thousands, and on my lap top, it will handle a couple…


Beyond Hello World - Update 4, File loading 27 times faster!

CLCV V4 now loads files about 27 times faster than V3 when running on my laptop.   The tree view is also about 5 times faster.  This comes from changing my initial naive implementation to a smarter one where I minimize the inter-thread communication and handle the tree view much more efficiently.  More information about the source…


Beyond Hello World - Update 3, Control Templates, Multithreading, and more... (with source)

I’ve learned a lot in working on my first real WPF application such as implimenting multi-threaded file reading, how to use the dispatcher object, how to use control templates to customize controls, the basics of application configuration, using abstract C# classes, and using anonymous methods. I’ve posted the source code that goes along with this post.  It is in…


Beyond Hello World - An Update On My First WPF Application (with source)

I’ve been working on my first useful WPF application and I’ve learned several things since my last post and answered a few questions.  I’ve included a ZIP file with my updated source (you can find it at the bottom of the post, it includes full Visual Studio 2005 project) Here is what I’ve leaned: How to…


Beyond Hello World - My First WPF Application (with source)

My pet project for the holiday vacation has been writing a WPF application to view data from my code line counting tool CLC.EXE (soon to be released on Codeplex). CLC produces counts of lines, code, comments, and other statistics per file, per directory and for entire directory trees. When complete, the CLC data viewer (CLCV)…


WPF Styles

One of the things I planned to do this holiday season was spend some time learning about Windows Presentation Foundation (here is the Microsoft link). The first thing to did was write a “Hello World” program.  I wanted just a simple window with a text box that said “Hello World”.   It was easy – Expression Blend and…