Adam Kinney on Longhorn

Designing and Developing with WinFX

December 2003 - Posts

  • Non-working Features in Longhorn

    Filed under:

    UPDATE: I have moved the list to a different location, you can now find it here

    This is a living “Non-working” features list I will be compiling over time while working in Longohorn.  I know the PDC Build is a pre-alpha and in no way expect everything to work.  I am just going to catalog issues here I have found as not working and have mostly been conformed via the winfx newsgroups.  If you have any issues you've found and would like to add to the list, ping me and I'll post them.

    Avalon - Application

    • PageFunctions OnFinish - Another very cool “soon to be“ feature.  At this time the OnFinish method does not appear to close the PageFunction and update the Window or Pane that initially called it.  The curious thing is that two samples came in the Longhorn SDK that show the code, but the applications do not work.

    Avalon - Visualization

    • NineGridBrush as a Fill The NineGridBrush only appears to work as a Background item and not as a Fill of a rectangle for example.
    • Animation while moving window - The animation does keep track of the results of the animation, it just doesn't re-render the visual until you stop dragging the window.


    • Creating Custom Items - Creating a custom or Extended Item Type for storing in a WinFS store is not supported yet.  Will be very cool once you can, for now I am using existing Item Types and re-mapping the available properties.
  • NineGridMan now available as a User Sample

    Filed under:

    Today, my NineGridMan Longhorn UI Sample was approved as GotDotNet User Sample.

    Click here to download

  • GlyphImageSource Property on the NineGridBrush

    Filed under:

    Drew Marsh asked for an explanation on what the GlyphImageSource property of the NineGridBrush was for, so I thought I'd show a visual example here.

    Below the GlyphImageSource is set to a PNG file that consists of the letter Q and a transparent background.  The Image Background is set to the bordered box.  The Gylph remains centered when resizing the elemented painted by the NineGridBrush.


    Useful for marking up text like they used to do on that paper stuff.


  • NineGridMan

    Filed under:

    Once I noticed the NineGridBrush, I was very impressed and excited to use it.  So I thought of an interesting way to display its usage.

    Enter the NineGridMan.

    You'll notice some distortion while stretching him out but I thought I'd still run with it because it showed how the image used in the NineGridBrush is currently distorted.  I've added in some interactivity where you can drag him around and stretch him out.

    Download the Application

  • What I see XAML used for, right now

    Filed under:

    Don Box asks "what do people expect to do with XAML besides stitch together documents?".  So I thought I'd answer with what I see XAML for right now:

    This example might seem odd.  I see XAML as replacing HTML.  Of course not across the web (yet), but locally.  As funny as it is, with all the great tools that are available, I still sometimes open notepad and create a quick utility HTML page and leave it on my desktop.  Maybe I want to mock up the layout of a page, view two videos or images next to each other (without any editor chrome), or create a list of urls that I want to use at the moment.  I'm one of those guys who love the rich textbox editors for blog entries, but still examine the html before posting.

    And of course there is XAML for application design.  Designing your window layout in XAML and writing the code in C# is a pleasant environment to work in.  It reminds me of the separation of code ASP.NET offers but much more.  XAML is quick and easy and the hierarchical design of XML allows for easy visualization of the elements.

    HTML to XAML
    XAML is for power-HTML writers.  I design and code, and when using HTML I'm pushed to the limit, I can't do much more with it.  I'm resigned to filling up my ASP.NET pages with s or custom controls.

    Flash to XAML
    Hmm...can we say GPU-Driven Graphics.  Ok that doesn't really count they're not competing in the same market...yet.  So when making a Flash movie you have to use the designer in the authorware. This works but sometimes that fine grain control of not being able to see the code the designer is bad.  You can create objects in code, but then there is no real way to visualize your elements at once (unless you run the movie of course)

    WindowsForms to XAML
    This is an easy one.  WindowsForms were hard to make look good (GDI+ was not one of my favorite things) and you were limited on dreaming up better ways to present data to users.  With Avalon it seems much less limited.  Maybe because I haven't worked with it enough yet to run into walls (other than yet to exist information in the Documentation), but so far it’s looking very promising.

    This is my view now and I'm sure the more I use XAML/Avalon/Longhorn the better I can describe it.

  • Starting a new Blog

    Filed under:

    Well the time has come again; Time to start a new blog - found here

    When I got into blogs I initially thought, “Wow, that's cool.  I'll build my own.”  That worked ok, it was simple enough.  Then I looked closely at an early dasBlog and thought “Boy, there's a lot of work someone has already done and is it offering it up for free use.”  Not too mention implementing Trackbacks and such things that I wasn't even thoroughly understanding.  So I setup a local installation of dasBlog.

    Things were running smoothly for a bit, until one day I somehow lost my XML Storage files and my blog was blank.  (This was a bit ago, so I'm sure any error on my part or dasBlog has been resolved).  So I grabbed the current version of .Text and tried out a local installation.  Very nice, dasBlog and .Text seemed like cousins, different but similiar and can play nice together.

    Things were running good, but then I came down with a case of BlogApathy (I just actually added that definintion to the wikipedia) and let my blog fall to the wayside...

    Then recently I decided I had something to say again, or wanted to have something to say.  I shot an email to Scott Watermasysk, and he thankfully setup on account for me on  This was good, I had been included in a vibrant active community.

    Very quickly I came down with another disease, LonghornFixation (I won't add this one to the wikipedia...yet).  So I asked Robert McLaws to setup a blog for me.  Which is great and now I have a blog I have actually started filling with content.

    But then I was recently linked to by...hmm, someone in the main feed.  Its so active now I can't search back on it.  So someone linked to;   Free Installation & Hosting Of Your Blog.  Nice and one of the best features - crossposting.  So now I have one blog, kindly hosted by newtelligence and their sponsors, where I can comfortably talk about whatever and when I have something related to ASP.NET or Longhorn I can push it out to the respective channels.

    Awesome work done by a lot of people to help foster the developer community.  Now I just need to give back and supply worthy content.  Oh, and of course, avoid another case of BlogApathy...

  • Bouncing Ball v0.1

    Filed under:

    In preparation for adding to the Snow Mountain Textbox scene, I thought I'd jump into Animation and Timelines in Avalon.  One of the first examples I did when I was Flash was the a bouncing ball.  So I thought I'd try to recreate the ball in XAML/C#.  I like the results so far.  The animation is totally scripted and not reactive.  My next step would be to get this ball to actually bounce a little more convincingly and throw in some hit testing in there (not for sure if you can actually do that yet...).

    Download Bouncing Ball Application Here

    As a side note - I definitley plan on turning these samples in as GotDotNet User Samples, I just want to tidy the code up a bit.  Very sloppy and inconsistent with chunks of samples here and there.

  • Want to learn the basics of Visual Composition?

    Filed under:

    If you want to learn how Avalon Composes the Visuals that you see, a great presentation has just recently been made available on the streaming PDC2003 siteThe presentation is entitled Avalon Graphics and Media (Part 2): Using Graphics, Animation and Composition in Your Applications (CLI341) and is given by Greg Schechter.  He does a great job explaining at high level how things are working.

    In addition, the presentation given by Cyra Richardson "Avalon” Graphics and Media (Part 1): Overview of the Windows “Longhorn” Graphics and Media Revolution (CLI340) had a nice call to action and “Free your mind” section for those attempting to design new form factors for applications.

  • Snow Mountain Text boxes?

    Filed under:

    My blog's subtitle is “Building Snow Mountain Text boxes...”.  So what does that mean?

    In a post by Ryan Dawson, he mentioned “A textbox can be modeled as a mountain with snow, if someone so wishes.“ as an example of how future applications will have the ability to become much more pleasing to the eye.  I left a comment about how the possibilities sounded exciting to me and decided to follow through.

    Larger Version

    Now granted the Text boxes are not truly modified (heck they are not even custom controls yet), but this window is done completely in XAML.  Fun stuff :)

    Next step is to change those texboxes and make them custom controls and manipulate their shape a little.  And of course I'll have to add in animation for the sun...

    This stuff is great, a ton of animation and drawing tools available and a good selection of brushes.  And did I mention how cool the Nine Grid Brush looks? No?  Of course not, I haven't used it yet, but I will be testing it out very soon.

  • Longhorn Boodle: #1

    Longhorn Boodle - A very short list of small changes or features I notice in the new Longhorn OS

    Issue #1

    • Right-click on a file and choose Rename; only the actual file name is highlighted not the extension.  Allowing for faster renaming and less typing.
    • Rollover a file in your explorer and the regular popup displays file properties, but if its an image or a video you also get a thumbnail image.
    • Computer Contacts - I haven't explored this too much yet, but the idea of  having one Contacts store for all applications sounds great.
    • And of course, the Analog clock in my face is awesome.  It just feels more real or something, not such 2D experience.
  • Longhorn Installed; Developer Ready

    Filed under:

    My name is Adam Kinney.  I'm a .NET developer.  Before the bliss that is .NET was in my life, I mainly developed in ASP/Flash and some VB6.  Since then I have not been able to exercise much of my “designer” side that I was used to try to get Flash to bend to my will.

    Now I've seen Longhorn.

    Yukon, Indigo for the developer side; Avalon for the developer AND designer side.  I installed Longhorn last night and so far I'm loving it.

    I'll post here what I find and learn as I go.  I'll be focusing mainly on what Avalon can do, what Aero means and just how cool it is to have a vector-based, GPU-driven UI.