Yes, it has pretty nice mixin and alias features similar to SASS, but from my opinion this is not that important and perhaps should be used only per-document to handle some simple repetitive cases when using WPF styles is overkill or simply too hard for such a small thing.
Ammy resolves several issues bothering XAML/WPF developers for all these years:
1. Having a lot of xmlns declarations (sometimes up to 15 namespaces per XAML document), some of which are simple boilerplate WPF XAML declarations. In case of our game, we expect modders to mod UI and make their own UI as well - so we will need to explain them all that stuff. Ammy simply need much less explanation and a modder could do a pretty good job right after reading the tutorial for a few minutes!
2. Declaring nested properties in XAML is nightmare when you need to repeat the type name again and again. Something like this is very common in our code:
<SomeLongControlName ...>
<SomeLongControlName.Resources>...
</SomeLongControlName.Resources>
<SomeLongControlName.Template>...
</SomeLongControlName.Template>
</SomeLongControlName>
You know where it leads. In case of Ammy we can simplify this to:
SomeLongControlName {
Resources: [ ... ]
Template: { ... }
}
3. Data binding is also much simpler in Ammy:
Grid {
TextBlock { Text: bind Title }
}
but still completely configurable (and stays pretty clean even with including converters, parameters, etc) read more
http://www.ammyui.com/documentation/syntax/#binding
4. There is also a new great feature - binding converters. So when you need a converter you don't need to write a special class and reference it in the markup - you declare it directly in ammy file and Ammy will auto-generate it for you, it's very compact and efficient!
Grid
{
TextBlock
{
Text: bind ShouldBeVisible
convert (bool visible) => visible ? Visibility.Visible : Visibility.Hidden
}
}
Read more
http://www.ammyui.com/2017/01/22/introd ... onverters/ I need to mention this is not supported in NoesisGUI.AmmyIntegration yet.
Also there is a great
blog post from honored WPF MVP (2006-2013) Paul Stovell discussing XAML evolution... or rather, lack of it - and it's the same even today (ok, MS have introduced new Bind operator for UWP, but XAML is still ugly).
We still not switched to Ammy for our game UI markup as there are a lot of things to consider and we need to be very sure it will work fine not only for modders, but for us as well. Also we need to have a good converter as we already have a lot of ready controls, styles and templates - but the developer is very responsive and promised us to implement a proper converter (the work is already started) and also fix some tooling issues, such as lack of reformat and refactoring features, provide better IntelliSense support.
However, it seems Blend support will be never implemented. And Ammy Designer preview (similar to XAML Designer in VS) is also might take much more development time if it will be implemented at all.
Regards!