Pull to refresh

Comments 32

UFO just landed and posted this here
Ваша правда, для липучих заметок стиль идеально подходит, а поменять кнопки или привязаться к клавишам при полном доступе к имплементации — не проблема

Для сравнения — вот окно 2012 студии без открытых проектов. Поначалу непривычно, но после нескольких месяцев становится более-менее естественным и начинает ассоциироваться со средствами разработки в целом, а не только со стикерами.

Меня после нескольких месяцев как бесил капслок в меню, так и бесит
PowerShell, но можно и просто в реестре:

Set-ItemProperty -Path HKCU:\Software\Microsoft\VisualStudio\11.0\General -Name SuppressUppercaseConversion -Type DWord -Value 1
Есть одно отличие от «дефолтового» окна WPF — отсутствие обработки логики типа: дернули за верхнюю панель мышкой вниз (при условии что окно развернуто на весь экран) — окно свернулось до нормального размера. А так, спасибо, за статью.
Спасибо. Я раньше и не знал про такую возможность — очень удобно.
Добавил эту функцию к коду на github'е (надо будет только посмотреть потом как улучшить производительность).
UFO just landed and posted this here
Как раз планировал взглянуть на наиболее интересные из метрошных WPF библиотек на выходных — Elysium и MahApps.Metro.

Спасибо за подсказку. Для «родного» решения на .Net 4.5 — WindowsChrome более правильный подход. Хотя, для нестандартной формы окна совсем без костылей там, похоже, тоже не обойтись. Поищу решения для проблемы с тулбаром, посмотрю на ваш код и обновлю статью.
> Мне хотелось избежать добавления новых библиотек в проект, но сохранить возможность легко перенести стиль в другое приложение, что и определило такую структуру.

А можно установить экстеншен NuGet, через него установить MahApps.Metro (+ Resources — дело вкуса), чтобы не изобретать велосипед и не постить азы WPF на хабрахабре ;)

Лично я считаю, что такие статьи заметки для начинающего WPF'щика не нужны на хабре. Этого полно в сети.
Вот к примеру поисковый вывод. И это только на русском.
over 60 человек с вами не согласны.
на момент [11/15/2012:10:48] вижу только 30 из 35
В фавор добавленные не считаю, ибо недостоверно. Добавить можно просто «последить за тредом для».

Я сам много раз подумывал подобные статьи писать. Вот к примеру тема биндингов в WPF — RelativeSource, AncestorType, Mode.TwoWay по дефолту, IValueConverter и прочие ключи. Тоже можно описать, но ведь это все как минимум в MSDN достаточно хорошо описано. Не вижу смысл наводнять хабр поверхностными постами. Уж лучше написать про создание кастомного эффекта на PixelShader — это и тема посерьезней и популярнее, потому как близка к GPGPU.
Тут не просто элементарная статья, тут конкретный пример выполнения конкретной задачи. То что она решается просто, это же хорошо?

З.Ы. Когда я просто хочу следить за комментами, я ставлю галочку «в трекере»
По поводу «написать про создание кастомного эффекта» — на моем примере могу сказать что подобные статьи тоже считаются на хабре поверхностными.
> Уж лучше написать про создание кастомного эффекта на PixelShader
Потому и поставил префикс «Уж лучше» в том смысле, что есть шанс получить плюсов просто за модный тренд.
Как бы то нибыло, я давно хотел эту штуку попробовать и лично мне написание статьи было бы как минимум полезно с точки зрения глубины усвоения и упорядочивания мыслей. Пока пишешь материал он усваивается куда эффективнее, нежели просто чтение чужого.
Статьи любые нам нужны, статьи любые нам важны...)

Я к примеру, совершенно не от мира десктопной разработки теперь получил в мозгу засечку, что можно вот в этом направлении что то сделать, и стал немного умнее, а вдруг мне завтра это понадобится и я вместо траты времени на гуглеж и курение доков получу порцию первоначальной информации отсюда (более вдумчиво прочитав статью) и сразу получу вектор дальнейшего гуглежа.
А в карму-то нагадили будто высказывать свое мнение есть смертный грех.

Правду видимо писали:
> Получается, за плохие комментарии мы люто бешено минусуем в карму, за хорошие комментарии мы ставим плюсик комменту.

Ну извините, коль кого-то ненароком обидел или возмутил своими коментариями :)
Забейте вы на эту карму. хабр — не пуп света.
Тут дело не в самой карме. Специально введены два инструмента: рейт каммента — для случая когда с ним несогласен; карма юзера — для карания или поощрения за поведение. И вот когда Начинают использовать второй инструмент, значит юзер (в данном случае я) сделал что-то достаточно негативное. Но при этом ни от кого не поступило в явном виде претензий.

Поэтому можно сделать опять вывод, что в статье про «Сублимацию на хабре» есть основания для размышлений.
На мой взгляд та статья несколько неконструктивна, этакий крик души.
Корень проблемы математический — когда на Stackoverflow, к примеру, карма (рейтинг) привязана к вопросам/ответам, то на хабре она ни с связана ни с чем. Ну и культура, конечно — тут очень много мелочных людей, которые любят поплевать в карму, просто потому что могут. На самом деле система (отсутствие комментария к плюсу/минусу, вышеупомянутая «оторванность» кармы) поощряет такие анонимные плевки и необоснованные плюсы (в праздничных топиках, например).
Поскольку царьки из администрации высокомерны (чего только стоят баны за обоснованную критику), изменений врят-ли стоит ждать. Пипл хавает, бабки за рекламу идут.
Давно перестал обращать внимание на карму. Чего и вам желаю.
Да… крик… карма врозь… культура… плевки ЧСВ потешить для… пипл схавает… Со всем этим я согласен. С высокомерием олимпа-жителей не столкнулся пока, слава Богу.

Задевает не карма оплеванная, а обостренное чувство несправедливости. Дааа, надо лечить недуг.
Минусовая или просто низка карма не позволяет постить топики куда надо. Например, я нашёл концепт-док для двигателя VASIMIR на английском языке. На хабре заветиться не успел, но перевод я запостить немогу, ибо карма ниже 5. Посему, за перевод я даже не принимался, думаю как поднимать карму.
Как раз стоит задача — поменять дизайн окон.
Сижу и изучаю тонны кода и думаю что нужно очень сильно эволюционировать для человека, который в этом ничего не понимает… И не совсем есть возможность свалить на других ибо растраты уже совсем не на том уровне… Ситуации разные бывают у абсолютно разных людей…
Итого:
Статья мне подошла очень очень кстати — я как будто желал ее увидеть на хабре…
Собственно и вам не хворать)
Что подразумевается под «идеальным устройством/экраном»?
«Идеальное устройство» это или беспиксельное устройство, или экран с очень высокой (бесконечной) плотностью пикселов и, соответственно, с возможностью показывать шрифт без искажений вызванных особенностями устройства. Из реальных к этому, наверное, ближе всего принтеры.

«Идальный» режим рендерит текст без учета существования пикселов.
Если линия в символе по толщине совпадает с одним пикселом, она может быть спозиционирована точно на пиксел или с дробным смещением, например в пол-пиксела. В первом случае будет четкая линия на экране, во втором — две линии в соседних пиксельных колонках, как в буквах N, l, m во второй строке на скриншоте.

MS долго настаивала, что вся отрисовка такста в WPF должна быть «идеальной», так что на мониторах на шрифты среднего и мелкого размера было страшно смотреть.
В WPF 4 добавили поддержку четкой отрисовки на обычных дисплеях и возможность выбора режима через TextFormattingMode с двумя возможными значениями — Display и Ideal.
Мне нравятся кастомные окна, однако сильно раздражает то, что они не умеют вести себя как полноценные окна — я часто пользуюсь логикой, которая работает при перетаскивании окна за заголовок — потянул заголовок в самый верх экрана — окно развернулось на весь экран, потянул вниз — окно стало нормальным, и т.д.
Я уже и забыл когда нажимал на среднюю кнопку в заголовке окна — все окна таскаю за заголовок.
Без реализации этого поведения я не стал бы включать кастомный стиль окна в свой коммерческий проект.
Кстати, DevExpress для WinForms кастомизирует окно, но делает это путем перерисовки родного заголовка окна, поэтому окно хоть и выглядит кастомным, но ведет себя как нужно.
А мне статья понравилась, пусть и ничего сверхъестественного не описывает. Сам программирую на WPF и учитывая не совсем ясные перспективы данного фреймворка, рад любым статьям на эту тему, автору спасибо. А солюшен MahApps.Metro, между прочим, занимает 20 мб, и не факт что в большинстве проектов он нужен полностью.
У меня скомпиленное приложение с MahApps.Metro + MahApps.Resources + Xceed.DataGrid + WPFToolkit Extended весит примерно 4 МБ. В них 2.41 МБ приходится на DataGrid и WPFToolkit. Сколько весит солюшен не важно.
Мой солюшен весит 19+ МБ, из которых 4 МБ — собранное приложение (папка bin), 13 МБ папка packages от NuGet. В packages только 1+ МБ приходится на MahApps.

Так что не вводите в заблуждение. Вот если б Вы сказали, мол, «не всегда лицензионная политика проекта допускает использование некоторых сторонних либ», то я бы, пожалуй, согласился.

PS: а за провокацию «учитывая не совсем ясные перспективы данного фреймворка» минусовать все равно не стану :)
Good for you. Но мои слова все-таки означают именно то, что написано, а именно если нужно решить какую-то небольшую задачу в проекте, попутно при этом немного размяв мозг прочтением документации и написанием живого кода, не надо этого бояться. А если есть желание и возможность сформулировать и оформить красиво свои исследования для других в виде подобной статьи — это вообще отлично. Просто нужно четко давать себе отчет, где творчество, а где изобретение велосипеда (например, собственный MVVM фреймворк или ORM пилить я никого не призываю). Мериться чем-бы то ни было я тем более не собирался, тут не магабайты важны, а сам принцип. Кстати, на репозиторий MahApps я подписался сразу как узнал о нем, и в одном из будущих проектов возможно буду его использовать.
Касаемо перспектив WPF — никакая это не провокация, просто мысли вслух. Уж очень активно в последнее время Microsoft продвигает HTML5/CSS3, и несмотря на чистосердечные обещания, что на WPF разработку это не повлияет, начинают возникать сомнения. C# то точно ничего не грозит хотя бы из-за ASP.NET/MVC, но судьба десктопной разработки в далекой перспективе уже как минимум не однозначна. Мое субьективное мнение, как человека, который сейчас работает в данном направлении и непосредственно в нем заинтересован. Вообщем, подводя итог, не надо искать черную кошку в темной комнате, особенно если ее там нет. Удачи.
> не надо искать черную кошку в темной комнате
Не искал. Читал Ваш коммент буквально

> А солюшен MahApps.Metro, между прочим, занимает 20 мб, и не факт что в большинстве проектов он нужен полностью.
По факту ответил по реальные размеры и про то, что неприменим он может быть совсем по другим причинам, о которых Вы не написали.

> Касаемо перспектив WPF — никакая это не провокация, просто мысли вслух.… Мое субьективное мнение, как человека, который сейчас работает в данном направлении
и
> Сам программирую на WPF и учитывая не совсем ясные перспективы данного фреймворка, рад любым статьям на эту тему
Довольно разные формулировки. В предыдущем комменте не было написано, что это только ваше субъективное мнение/впечатление.

> Но мои слова все-таки означают именно то, что написано, а именно если нужно решить какую-то небольшую задачу в проекте, попутно при этом немного размяв мозг прочтением документации и написанием живого кода, не надо этого бояться.

Во-первых, написано у Вас было в другом ключе. Во-вторых, в реальном проекте всегда приходится взвешивать время на изобретение «таких вот» как раз велосипедов и профит от использования сторонних решений.

> Просто нужно четко давать себе отчет, где творчество, а где изобретение велосипеда
Ну в данном-то случае мы видим именно велик с кастомным протектором шин? Или Вы все же считаете это новым решением?
Я так понял процитированную фразу должно было составить малось иначе. Универсальных решений сторонних не бывает. Всегда стоит выбор: взять готовое решение и выкинуть лишнее да обтесать острые углы ЛИБО написать свое нативное решение, четко отвечающее требованиям данного проекта. Т.е. проблема «Fast Implementation vs Best Fit». Это вы имели в виду?
Была как-то статья про плеер Meridian — музыкальный плеер в стиле Metro для Вконтакте. Интерфейс также сделан под metro style. Доступны исходники первой версии приложения. При желании можно покопаться в исходниках и посмотреть как там реализовано.
Sign up to leave a comment.

Articles