By Richard Waddell on
1/24/2010 7:21 PM
Live Example:
http://www.adefwebserver.com/Richard/ooNaEyeDevelopmentv2/ooNaEyeDevelopmentTestPage.html
I’ve been promising to get to Visual States, and this time I’m actually going to do it. In the process I cover creating a templated control from scratch, and technically I achieve my goal of not having to type in the visual states. From there I show how much control a designer has over the many versions of the UI of a templated control, entirely in Blend design view - including how to mess up the xaml if you edit the wrong thing – same choice, different menus. If you don’t already know how to create templated controls, and you want a detailed description with pictures of every step and misstep, read on:
...
Read More »
|
By Richard Waddell on
1/16/2010 7:02 PM
Live Example:
http://www.adefwebserver.com/Richard/SeekerPartsAndStates/SeekerPartsAndStatesTestPage.html
I’d like to acknowledge that posts by Karen Corby made it possible for me to get to this point in understanding Parts and States.
http://scorbs.com/2008/06/11/parts-states-model-with-visualstatemanager-part-1-of/
In this blog I’m going to show you how to create a multi-part templated control with visual states, then how you can manipulate those parts and states in Blend.
If you’ve...
Read More »
|
By Richard Waddell on
1/12/2010 7:45 PM
Live Example:
http://www.adefwebserver.com/Richard/TemplatedSeeker/TemplatedSeekerTestPage.html
Probably the most significant benefit of using a ControlTemplate to contain your object’s UI is that the appearance can then be managed by designers without ever touching a line of code. Maybe I feel that way because I’m anxious to get past this visual stuff and back to what the ooNaCreatures can do, not how they look, which kind of proves my point. Anyway, to prove my claim that the Well-Templated Seeker can be changed visually without touching any code, I’ll demonstrate:
Here we are in MainPage.xaml with a seeker named defaultSeeker in the design window.
...
Read More »
|
By Richard Waddell on
1/10/2010 8:45 PM
Live Example:
http://www.adefwebserver.com/Richard/ooNacontrols/ooNaControls.TestTestPage.html
ooNaverse sidebars are separate projects that focus on narrow issues within the ooNaverse. In this case, the demo just shows that a Position property can be implemented in an abstract base class (ooNaThing) with no UI that inherits from UserControl and in turn be inherited by a subclass (Seeker) that does define a UI (xaml file). Clicking on the page will cause the ooNaSeeker object...
Read More »
|
By Richard Waddell on
1/3/2010 12:31 PM
Live example:
http://www.adefwebserver.com/Richard/TheSeekerSiteV4/Default.html
I made a lot of changes to The Seeker, but probably the most important technically is the addition of Dependency Properties and more specifically Dependency Properties to support Animation.
...
Read More »
|
By Richard Waddell on
12/26/2009 10:37 PM
Live example: http://www.adefwebserver.com/Richard/TheSeekerBehaviorv1Site/
Ok, Silverlight is starting to freak me out a little bit. I thought it would take a couple of days to figure out how to translate my Seeker behaviors into Silverlight behaviors. After going down several paths that had too many details about things I wasn’t interested in right now, I found Falling Snow in Silverlight on Kirupa.com and the scales were lifted from my eyes in about 15 minutes. I was afraid behavior would be restricted to some short-term action-reaction thingie but not at all. After reading Kirupa’s description of a behavior’s parasitic behavior and seeing the FallingSnowBehavior literally take over a Canvas control I became hopeful I could write a Hunt behavior that could take over my Seeker control, or at least its reaction to a SightingEvent.

I modified Seeker Version 1 to try this out. First I modified the Seeker so the reaction to a SightingEvent is a call to the React method on an iSighting interface...
Read More »
|
By Richard Waddell on
12/25/2009 12:02 PM
See it live: http://www.adefwebserver.com/Richard/TheSeekerSitev3/
After ooNaLife, I intended to just post my latest version of The Seeker so I could move on to focusing on Silverlight issues. But I had to indulge myself by using interfaces to supply the Seekers with “brains”. But that’s cool, I think it got me more in a good place to look at the MVVM model (judging from the little I know now).

Let me explain the on screen changes to what I now call ooNa and then I’ll get on to the code. Seekers are now red ellipses. When a Seeker ‘catches’ a Prey, the Prey disappears from the screen...
Read More »
|
By Richard Waddell on
12/22/2009 8:11 PM

See the live example here: http://www.adefwebserver.com/Richard/ooNaLifeSite/
After Seeker 2, I wanted to add a control panel, but I wasn’t clear how to tack one on. So far I’ve just slapped everything up onto the main UI, LayoutRoot, so I decided to write a new app and divide everything up from the start...
Read More »
|
By Richard Waddell on
12/18/2009 9:41 PM

Version 2.0 keeps some continuous action going by introducing Prey for the seekers to follow around. The Prey has a true graphic representation, a green circle created by choosing an Ellipse from the Asset panel, then drawing it with the shift key held down so it will be constrained to circular dimensions. The Seeker now watches its target after initially becoming aware of it through an event – which is generated when a new prey is created through a left mouse click...
Read More »
|
By Richard Waddell on
12/17/2009 7:20 PM

When I’m trying to learn any new language, framework, or the like, I often find myself frustrated because blogs and tutorials obscure the simple concepts I’m trying to understand with too much detail. My goal is to start very simply so that the programming concepts are laid-out in small, easy-to-understand chunks of code. Then with each version to expand the use of those concepts and add in some very simple examples of a few new ones.
I never get to do it on the job, but my favorite kind of programming is to create intelligent objects that interact onscreen. My first Silverlight project in that line is The Seeker. The seeker reacts to an onscreen event by moving towards it. In this case the event is the drop part of a drag and drop operation.
The important concepts are:
- Publishing and consuming events
- Programmatically adding and positioning controls on screen
- Drag and drop
- Animation / Storyboard
- Internal Logic
- Calculating distance onscreen
The images below show the starting positions, the seekers...
Read More »
|