Я, как правило, согласен с другими здесь, особенно Soraz и Smaci.
Одна вещь, которую я добавлю, однако. Если вы чувствуете, что OS L & F слишком сдерживает, и у вас есть хорошие основания для выхода за его пределы, я бы стремился следовать принципу «Pacing and leading» (который я заимствую здесь из контекста NLP) ,
Идея состоит в том, что вы по-прежнему хотите максимально использовать максимально возможное значение для вашего предполагаемого знакомства с ОС хоста (это будет редкое исключение, так как Smaci уже покрыт). Таким образом, вы используете как можно больше «стандартных» элементов управления и поведения (это «стимуляция»), но расширяйте его, если необходимо, способами, которые по-прежнему «подходят» в максимально возможной степени (ведущей).
Вы уже упоминали о некоторых хороших примерах этого принципа в работе - Visual Studio, даже Office, в некоторой степени (Office является «особенным», поскольку новые стили пользовательского интерфейса, которые режут их зубы, часто возвращаются в будущие версии ОС - или де-факто стандартов).
Я рассказываю об этом, чтобы сравнить типы приложений, которые просто «делают это по-своему» - обычно потому, что они были перенесены с другой платформы или были написаны как кросс-платформенные в графическом интерфейсе, так и ядро. Приложения Java часто попадают в эту категорию, но они не единственные. Это не так плохо, как раньше, но даже сегодня большинство аудио-приложений имеют mongrel UI, демонстрируя свою линейку, поскольку они переносились с одной платформы на другую на протяжении многих лет. Хотя для этих примеров могут быть хорошие деловые причины, остается, что их пользовательский интерфейс, как правило, сосать и идти по этому пути, следует избегать, если это возможно!
Принцип переопределения по-прежнему следует за наименьшим сюрпризом и учитывает знакомство вашего пользователя с ОС и соотношение их времени с использованием вашего приложения с другими пользователями ОС.
Одним из примеров, который приходит на ум, является пользовательская кнопка закрытия вкладок, вкладки по умолчанию не имеют кнопки закрытия, поэтому, если вы хотите добавить один, который соответствует теме, которую пользователь имеет, это сложно. – CiNN 2008-11-10 15:26:06