Some of the XAML coding best practices mentioned below:
* Don't use unnecessary "xmlns" namespaces in the XAML file. This
overburdens the load time of the Silverlight page (If you are using
Resharper, you can do this very easily as it will change the color of
the unnecessary items to Grey).
* Don't add same namespaces multiple times in a single XAML page. It
screws up the XAML code at the time of maintenance and also loads the
assembly namespace multiple times causing various memory issues at
* Use proper name for your "xmlns" namespace prefix. For example:
xmlns:commonControls is more meaningful than xmlns:cctrl. This avoids
multiple declarations of namespaces.
* Try avoiding "xmlns" namespace prefix name as "local". Instead use "localControls" or "localConverters" etc.
* When adding a control that has no elements inside it, better to close
it by self-closing tag "/>" instead of the hard closing tag ()
* Remove all unnecessary resource keys if they are not in use. These
increases the memory uses and you may sometime encounter some animation
issues due to this. If you need it at later point of time, you are
always welcome to add it.
* Don't use extra panels (e.g. Grid, StackPanel, Canvas etc.) unless it is required.
* Always try to use Grid as your panel first and if you require other panels, use them.
* Never try to give a name to all of your controls inside your
Silverlight page as it takes unnecessary object creation at the time of
load. Name only those elements which you want to use from your code
behind and/or from your xaml. If you are using MVVM pattern, you can
remove the naming of your controls in almost all the cases.
* Use the Visibility property of the controls instead of the Opacity property to hide the content.
* Use proper formatting of your XAML code. This gives better look of code and also easy to maintain in future.
* Use comments in XAML whenever require.
* Try to use StaticResource instead of DynamicResource as it increases
the performance and also it throws exceptions at development time.
Hence, easier to identify the root cause.
* Remove unnecessary styles if they are not require at all.
* Try to add your styles in a separate file if you want to share them
across your application. If they are specific to a single page then add
them in the page resource.