[Blend] How to design WPF XAML and use Projection transforms
Posted: 06 Oct 2014, 13:05
Hi,
I've found that WPF XAML standard (compared to Silverlight XAML) provides the best set of features I need to design UI in Microsoft Blend 2013 for NoesisGUI.
But now I want to add Projection animations (for transition between the VisualStates) those are supported by NoesisGUI, but Blend doesn't accept tags like <Grid.Projection><PlaneProjection ... /></Grid.Projection> in XAML files in WPF projects.
To port everything to Silverlight XAML subset just to be able to use Projection transforms in Blend is not an option, first of all because of a huge amount of work, and secondly because I like WPF XAML more than its Silverlight subset, and WPF XAML just works fine with NoesisGUI. Normally in WPF the developer doesn't need Projection transforms because WPF XAML has full 3D features (Viewport3D and so on), but NoesisGUI does not support WPF 3D features, so it's not an option as well.
My question: is there some hack to make Blend accept <*.Projection/> and <PlaneProjection/> tags as well as "(UIElement.Projection).(PlaneProjection.*)" in Storyboard.TargetProperty attribute in XAML files in WPF project? If Blend can't display Projections correctly in WPF project, then I want it to ignore these tags at the least. Is that possible? Maybe I should add some dummy C# classes to WPF project to fool Blend, add the same classes to my Unity project and inherit them from according NoesisGUI classes to make it work in Unity with NoesisGUI?
Another possible approach I'm thinking of is to extract the storyboards to styles or resources, and use WPF-compatible ones in WPF project, and design Silverlight-compatible storyboards from separate Silverlight project in Blend. However I suspect that it may lead to undesired degree of XAML code complexity...
What would you suggest? Have you (or somebody else) successfully solved similar problem before?
I've found that WPF XAML standard (compared to Silverlight XAML) provides the best set of features I need to design UI in Microsoft Blend 2013 for NoesisGUI.
But now I want to add Projection animations (for transition between the VisualStates) those are supported by NoesisGUI, but Blend doesn't accept tags like <Grid.Projection><PlaneProjection ... /></Grid.Projection> in XAML files in WPF projects.
To port everything to Silverlight XAML subset just to be able to use Projection transforms in Blend is not an option, first of all because of a huge amount of work, and secondly because I like WPF XAML more than its Silverlight subset, and WPF XAML just works fine with NoesisGUI. Normally in WPF the developer doesn't need Projection transforms because WPF XAML has full 3D features (Viewport3D and so on), but NoesisGUI does not support WPF 3D features, so it's not an option as well.
My question: is there some hack to make Blend accept <*.Projection/> and <PlaneProjection/> tags as well as "(UIElement.Projection).(PlaneProjection.*)" in Storyboard.TargetProperty attribute in XAML files in WPF project? If Blend can't display Projections correctly in WPF project, then I want it to ignore these tags at the least. Is that possible? Maybe I should add some dummy C# classes to WPF project to fool Blend, add the same classes to my Unity project and inherit them from according NoesisGUI classes to make it work in Unity with NoesisGUI?
Another possible approach I'm thinking of is to extract the storyboards to styles or resources, and use WPF-compatible ones in WPF project, and design Silverlight-compatible storyboards from separate Silverlight project in Blend. However I suspect that it may lead to undesired degree of XAML code complexity...
What would you suggest? Have you (or somebody else) successfully solved similar problem before?