Vous avez peut être remarqué dans les samples WF4 ou dans mon dernier post qu’afin d’appliquer des Template sur un ActivityDesigner on utilise un ContentPresenter. Mais les plus observateurs auront aussi remarqué que l’ActivityDesigner à des propriétés Template et ContentTemplate.

Alors, pourquoi utiliser un ContentPresenter? c’est absurde?!

Non! Le ContentPresenter est indispensable car l’ActivityDesigner ne tourne pas actuellement comme on le souhaiterait.

Après bon nombre de tumulte avec Xaml et l’ActivityDesigner j’en suis arrivé au triste constats suivant :

  • Pas de prise en compte du Background.
  • Pas de prise en compte du BorderBrush.
  • Pas de prise en compte du ContentTemplate… ça c’est vraiment dommage.
  • … etc …

En fait pour faire simple : pas de prise en compte de la plus part des propriétés servant au rendu visuel du control. Hors mis le Template, qui lui, peut être modifié. Ceci est plutôt gênant aujourd’hui car on fait du tout ou rien : soit on refait tout le Template soit on n’y touche pas.

A l’heure actuelle rien de bien grave WF4 étant en RC on peut parier que Microsoft va corriger le tir. Mais pour le moment le plus simple reste d’utiliser un ContentPresenter au sein du Content de votre ActivityDesigner. Cela a le mérite de fonctionner.

Ce constat n’est pas nouveau, j’avais déjà fais la remarque durant la beta2 :(

 

PS : les plus observateurs remarqueront aussi que de temps en temps WPF n’a pas un comportement habituel quand il est utilisé dans WF (par exemple les Styles qui doivent de temps en temps être explicitement affectés à un control)