[DefaultValue(typeof(Point), "0, 0")]
Был бы примером. Использование строки для инициализации значения является неизбежным злом, типы, которые вы можете использовать в конструкторе атрибутов, очень ограничены. Только простые типы значений, строка, тип и одномерный массив из них.
Чтобы это работало, вы должны написать TypeConverter для вашей структуры:
[TypeConverter(typeof(PointConverter))]
[// etc..]
public struct Point
{
// etc...
}
Документация по преобразователям типов в библиотеке MSDN невелика. Использование преобразователей типов .NET, источник которых вы можете посмотреть в справочном источнике, или обратный инжиниринг в Reflector - это отличная отправная точка для того, чтобы начать работать самостоятельно. Остерегайтесь культуры, кстати.