public void AddToTemplate(IUIRenderer renderer, string style, GameObject template)
            {
                // Add this property to the game object. The value is set to:
                // - the value of the Renderer/Theme, or
                // - the overridden default value, or
                // - no value (= the global default value of the GamePropertyMetadata).

                T value;

                if (renderer.GetAttribute(style, Name, out value))
                {
                    // Set value from renderer/theme.
                    template.SetValue(Name, value);
                }
                else if (OverridesDefaultValue)
                {
                    // Set overridden default value.
                    template.SetValue(Name, DefaultValue);
                }
                else
                {
                    // Use default value. (Add property without local value.)
                    template.Properties.Add <T>(Name);
                }
            }