The type of the property should support a TypeConverter.
For in the image you showed above, Padding struct supports PaddingConverter:
If a usercontrol has a property
public MyPoint mypoint { get; set;}
then
[TypeConverter(typeof(MyPointConverter))]
public struct MyPoint
{
...
}
public class MyPointConverter : TypeConverter
{
...
}