Join the IdentityMine team for an in-depth discussion around lessons learned on Windows Presentation Foundation (WPF) designer/developer workflow and productivity. They look at several real world WPF applications they have built and show you how to help maximize productivity across the entire team from Graphic Designer to Interactive Designer to Developer. Also, get a sneak peek at several of IdentityMine's forthcoming Blendablesâ„¢ Brand WPF Control products and take the opportunity to participate in an open Q&A session with the team
12. Event handlers keep objects alive
WPF registers a Changed handler for DPs of type Freezable
Set to null prior to releasing the object
MyRect.Fill = null;
MyRect = null;
13. There’s Strength in Weakness
Follow the weak event pattern
Use weak references
31. Building 3D applications with WPF can be much easier
than other technologies, but…
It's still hard.
32. Make sure you have a good understand of 3D concepts
and terminology.
If you don't have the knowledge now, don't be afraid of 3D.
Read a book.
33. Designers should be familiar with 3D Modeling tools.
ElectricRain's Zam3D
Workflow: Export developer friendly models.
34. Most users are not familiar with navigating 3D UI
Contrained movement to allow users easily acclimate to the
environment
2D UI to allow user to control 3D world
36. ModelVisual3D is the most functional class in 3D
Most similar to the 2D Visual class
No support for Styles, Templates, Routed Events.
37. 3D models do not raise events as 2D controls do
No MouseEnter, No MouseExit, No
MouseButtonDown, etc.
38. A UIElement is needed to raise input events. This could be
the Viewport3D itself or an element on top of the
Viewport3D
VisualTreeHelper provides support for hit testing into 3D
Models intersected by hit test are returned
39. We created a hit manager class that handles all hit testing
Hit manager dispatches events to the models hit
Now we could add event handlers directly to the models
when the model is added to scene for a more productive
and consistent development model
40. Data in the Accruent application cried out for ItemsControl
functionality.
List of data objects are returned from most service calls.
We leveraged the Blendables™ Brand ItemsContainer3D
and Carousel3D controls
42. 3DTools project on codeplex.com
Source released by Microsoft with controls enabling
interactive 2D content on 3D
The Interactive3DDecorator is the control that sits on top of
the Viewport3D in the Accruent application
43. Avoid TileBrushes whenever possible in your 3D scene
When a model with a TileBrush in its material is not visible
remove it form the scene
RenderOptions.CachingHint attached property
44. Real world data sources can be slow
Waiting on data can freeze ambient animations and result
in a poor user experience
45. Dispatcher.Invoke
Dispatcher.BeginInvoke
Do processing on background threads and update
dependency properties