arrow-left arrow-right brightness-2 chevron-left chevron-right circle-half-full dots-horizontal facebook-box facebook loader magnify menu-down RSS star Twitter twitter GitHub white-balance-sunny window-close
My WPF 5.0 Wishlist
1 min read

My WPF 5.0 Wishlist

This is an old post and doesn't necessarily reflect my current thinking on a topic, and some links or images may not work. The text is preserved here for posterity.

Here's a list of things I'd like to see in the next version of WPF:

  1. Blend's Behaviors and TriggerActions model should be part of the .NET framework, not a custom Blend assembly, and should have VS support
  2. I shouldn't have to declare the same half-dozen xmlns:abc entries in every XAML file. An ASPX inspired 'project-wide imports' system would be great.
  3. Ability to replace tags from a namespace, ala ASP.NET TagMapping.
  4. This should work for markup extensions too - e.g., {# Foo} could become {Binding Path=Foo}
  5. XBAP's should be able to nicely prompt for full trust elevation. Why does Silverlight get a friendly prompt while XBAP's have to deal with group policy or arcane IE settings? Boggles the mind.
  6. MarkupExtension should be an interface. Then extensions could be DependencyObjects and thereby support attached properties.
  7. It shouldn't be so hard to support nested child objects with bindings (without using ItemsControl).
  8. FrameworkElement.AddLogicalChild shouldn't be protected, it should be public
  9. Styles simply shouldn't be so verbose. Give us a CSS-like syntax for styles.
  10. ICommands should have the ability, when executed, to determine which UIElement owns the command. Perhaps when event handlers are invoked, CallContext could be used to store the current UIElement 'sender'.
  11. AdornedElementPlaceHolder shouldn't be so tightly coupled to TemplatedAdorner. Or, TemplatedAdorner shouldn't be internal.
  12. Easier to make attached lazy collections (without the current 'hacks').
  13. Fix this bug.
  14. Some kind of pre-unload event. E.g., if an object is removed from an ObservableCollection, make it as easy to play an Unloaded storyboard as it is for a Loaded storyboard. Perhaps it's specific to the item containers of an ItemsControl.
  15. Make it possible to figure out the XAML URI from a Type. E.g., this should pass:
    Assert.AreEqual("/MyAssemb;component/Page1.xaml", GimmeUri(typeof(Page1)))
  16. Make it possible to set a default style for x:Class root's (e.g., a style for all Window's) - as per this question.
  17. TriggerBase's constructor shouldn't be public
  18. Delete everything from System.Windows.Navigation, and build a better navigation system.
Paul Stovell's Blog

Hello, I'm Paul Stovell

I'm a Brisbane-based software developer, and founder of Octopus Deploy, a DevOps automation software company. This is my personal blog where I write about my journey with Octopus and software development.

I write new blog posts about once a month. Subscribe and I'll send you an email when I publish something new.