Comments 32
UFO just landed and posted this here
Ваша правда, для липучих заметок стиль идеально подходит, а поменять кнопки или привязаться к клавишам при полном доступе к имплементации — не проблема
Для сравнения — вот окно 2012 студии без открытых проектов. Поначалу непривычно, но после нескольких месяцев становится более-менее естественным и начинает ассоциироваться со средствами разработки в целом, а не только со стикерами.
Для сравнения — вот окно 2012 студии без открытых проектов. Поначалу непривычно, но после нескольких месяцев становится более-менее естественным и начинает ассоциироваться со средствами разработки в целом, а не только со стикерами.
+2
Есть одно отличие от «дефолтового» окна WPF — отсутствие обработки логики типа: дернули за верхнюю панель мышкой вниз (при условии что окно развернуто на весь экран) — окно свернулось до нормального размера. А так, спасибо, за статью.
+2
Спасибо. Я раньше и не знал про такую возможность — очень удобно.
Добавил эту функцию к коду на github'е (надо будет только посмотреть потом как улучшить производительность).
Добавил эту функцию к коду на github'е (надо будет только посмотреть потом как улучшить производительность).
0
UFO just landed and posted this here
Как раз планировал взглянуть на наиболее интересные из метрошных WPF библиотек на выходных — Elysium и MahApps.Metro.
Спасибо за подсказку. Для «родного» решения на .Net 4.5 — WindowsChrome более правильный подход. Хотя, для нестандартной формы окна совсем без костылей там, похоже, тоже не обойтись. Поищу решения для проблемы с тулбаром, посмотрю на ваш код и обновлю статью.
Спасибо за подсказку. Для «родного» решения на .Net 4.5 — WindowsChrome более правильный подход. Хотя, для нестандартной формы окна совсем без костылей там, похоже, тоже не обойтись. Поищу решения для проблемы с тулбаром, посмотрю на ваш код и обновлю статью.
0
> Мне хотелось избежать добавления новых библиотек в проект, но сохранить возможность легко перенести стиль в другое приложение, что и определило такую структуру.
А можно установить экстеншен NuGet, через него установить MahApps.Metro (+ Resources — дело вкуса), чтобы не изобретать велосипед и не постить азы WPF на хабрахабре ;)
Лично я считаю, что такиестатьи заметки для начинающего WPF'щика не нужны на хабре. Этого полно в сети.
Вот к примеру поисковый вывод. И это только на русском.
А можно установить экстеншен NuGet, через него установить MahApps.Metro (+ Resources — дело вкуса), чтобы не изобретать велосипед и не постить азы WPF на хабрахабре ;)
Лично я считаю, что такие
Вот к примеру поисковый вывод. И это только на русском.
-12
over 60 человек с вами не согласны.
0
на момент [11/15/2012:10:48] вижу только 30 из 35
В фавор добавленные не считаю, ибо недостоверно. Добавить можно просто «последить за тредом для».
Я сам много раз подумывал подобные статьи писать. Вот к примеру тема биндингов в WPF — RelativeSource, AncestorType, Mode.TwoWay по дефолту, IValueConverter и прочие ключи. Тоже можно описать, но ведь это все как минимум в MSDN достаточно хорошо описано. Не вижу смысл наводнять хабр поверхностными постами. Уж лучше написать про создание кастомного эффекта на PixelShader — это и тема посерьезней и популярнее, потому как близка к GPGPU.
В фавор добавленные не считаю, ибо недостоверно. Добавить можно просто «последить за тредом для».
Я сам много раз подумывал подобные статьи писать. Вот к примеру тема биндингов в WPF — RelativeSource, AncestorType, Mode.TwoWay по дефолту, IValueConverter и прочие ключи. Тоже можно описать, но ведь это все как минимум в MSDN достаточно хорошо описано. Не вижу смысл наводнять хабр поверхностными постами. Уж лучше написать про создание кастомного эффекта на PixelShader — это и тема посерьезней и популярнее, потому как близка к GPGPU.
0
Тут не просто элементарная статья, тут конкретный пример выполнения конкретной задачи. То что она решается просто, это же хорошо?
З.Ы. Когда я просто хочу следить за комментами, я ставлю галочку «в трекере»
З.Ы. Когда я просто хочу следить за комментами, я ставлю галочку «в трекере»
0
По поводу «написать про создание кастомного эффекта» — на моем примере могу сказать что подобные статьи тоже считаются на хабре поверхностными.
0
> Уж лучше написать про создание кастомного эффекта на PixelShader
Потому и поставил префикс «Уж лучше» в том смысле, что есть шанс получить плюсов просто за модный тренд.
Как бы то нибыло, я давно хотел эту штуку попробовать и лично мне написание статьи было бы как минимум полезно с точки зрения глубины усвоения и упорядочивания мыслей. Пока пишешь материал он усваивается куда эффективнее, нежели просто чтение чужого.
Потому и поставил префикс «Уж лучше» в том смысле, что есть шанс получить плюсов просто за модный тренд.
Как бы то нибыло, я давно хотел эту штуку попробовать и лично мне написание статьи было бы как минимум полезно с точки зрения глубины усвоения и упорядочивания мыслей. Пока пишешь материал он усваивается куда эффективнее, нежели просто чтение чужого.
0
Статьи любые нам нужны, статьи любые нам важны...)
Я к примеру, совершенно не от мира десктопной разработки теперь получил в мозгу засечку, что можно вот в этом направлении что то сделать, и стал немного умнее, а вдруг мне завтра это понадобится и я вместо траты времени на гуглеж и курение доков получу порцию первоначальной информации отсюда (более вдумчиво прочитав статью) и сразу получу вектор дальнейшего гуглежа.
Я к примеру, совершенно не от мира десктопной разработки теперь получил в мозгу засечку, что можно вот в этом направлении что то сделать, и стал немного умнее, а вдруг мне завтра это понадобится и я вместо траты времени на гуглеж и курение доков получу порцию первоначальной информации отсюда (более вдумчиво прочитав статью) и сразу получу вектор дальнейшего гуглежа.
+1
Да и вообще, тема давно была раскрыта: blogs.msdn.com/b/wpfsdk/archive/2008/09/08/custom-window-chrome-in-wpf.aspx
+1
А в карму-то нагадили будто высказывать свое мнение есть смертный грех.
Правду видимо писали:
> Получается, за плохие комментарии мы люто бешено минусуем в карму, за хорошие комментарии мы ставим плюсик комменту.
Ну извините, коль кого-то ненароком обидел или возмутил своими коментариями :)
Правду видимо писали:
> Получается, за плохие комментарии мы люто бешено минусуем в карму, за хорошие комментарии мы ставим плюсик комменту.
Ну извините, коль кого-то ненароком обидел или возмутил своими коментариями :)
0
Забейте вы на эту карму. хабр — не пуп света.
+2
Тут дело не в самой карме. Специально введены два инструмента: рейт каммента — для случая когда с ним несогласен; карма юзера — для карания или поощрения за поведение. И вот когда Начинают использовать второй инструмент, значит юзер (в данном случае я) сделал что-то достаточно негативное. Но при этом ни от кого не поступило в явном виде претензий.
Поэтому можно сделать опять вывод, что в статье про «Сублимацию на хабре» есть основания для размышлений.
Поэтому можно сделать опять вывод, что в статье про «Сублимацию на хабре» есть основания для размышлений.
0
На мой взгляд та статья несколько неконструктивна, этакий крик души.
Корень проблемы математический — когда на Stackoverflow, к примеру, карма (рейтинг) привязана к вопросам/ответам, то на хабре она ни с связана ни с чем. Ну и культура, конечно — тут очень много мелочных людей, которые любят поплевать в карму, просто потому что могут. На самом деле система (отсутствие комментария к плюсу/минусу, вышеупомянутая «оторванность» кармы) поощряет такие анонимные плевки и необоснованные плюсы (в праздничных топиках, например).
Поскольку царьки из администрации высокомерны (чего только стоят баны за обоснованную критику), изменений врят-ли стоит ждать. Пипл хавает, бабки за рекламу идут.
Давно перестал обращать внимание на карму. Чего и вам желаю.
Корень проблемы математический — когда на Stackoverflow, к примеру, карма (рейтинг) привязана к вопросам/ответам, то на хабре она ни с связана ни с чем. Ну и культура, конечно — тут очень много мелочных людей, которые любят поплевать в карму, просто потому что могут. На самом деле система (отсутствие комментария к плюсу/минусу, вышеупомянутая «оторванность» кармы) поощряет такие анонимные плевки и необоснованные плюсы (в праздничных топиках, например).
Поскольку царьки из администрации высокомерны (чего только стоят баны за обоснованную критику), изменений врят-ли стоит ждать. Пипл хавает, бабки за рекламу идут.
Давно перестал обращать внимание на карму. Чего и вам желаю.
0
Да… крик… карма врозь… культура… плевки ЧСВ потешить для… пипл схавает… Со всем этим я согласен. С высокомерием олимпа-жителей не столкнулся пока, слава Богу.
Задевает не карма оплеванная, а обостренное чувство несправедливости. Дааа, надо лечить недуг.
Задевает не карма оплеванная, а обостренное чувство несправедливости. Дааа, надо лечить недуг.
0
Как раз стоит задача — поменять дизайн окон.
Сижу и изучаю тонны кода и думаю что нужно очень сильно эволюционировать для человека, который в этом ничего не понимает… И не совсем есть возможность свалить на других ибо растраты уже совсем не на том уровне… Ситуации разные бывают у абсолютно разных людей…
Итого:
Статья мне подошла очень очень кстати — я как будто желал ее увидеть на хабре…
Собственно и вам не хворать)
Сижу и изучаю тонны кода и думаю что нужно очень сильно эволюционировать для человека, который в этом ничего не понимает… И не совсем есть возможность свалить на других ибо растраты уже совсем не на том уровне… Ситуации разные бывают у абсолютно разных людей…
Итого:
Статья мне подошла очень очень кстати — я как будто желал ее увидеть на хабре…
Собственно и вам не хворать)
0
Что подразумевается под «идеальным устройством/экраном»?
+2
«Идеальное устройство» это или беспиксельное устройство, или экран с очень высокой (бесконечной) плотностью пикселов и, соответственно, с возможностью показывать шрифт без искажений вызванных особенностями устройства. Из реальных к этому, наверное, ближе всего принтеры.
«Идальный» режим рендерит текст без учета существования пикселов.
Если линия в символе по толщине совпадает с одним пикселом, она может быть спозиционирована точно на пиксел или с дробным смещением, например в пол-пиксела. В первом случае будет четкая линия на экране, во втором — две линии в соседних пиксельных колонках, как в буквах N, l, m во второй строке на скриншоте.
MS долго настаивала, что вся отрисовка такста в WPF должна быть «идеальной», так что на мониторах на шрифты среднего и мелкого размера было страшно смотреть.
В WPF 4 добавили поддержку четкой отрисовки на обычных дисплеях и возможность выбора режима через TextFormattingMode с двумя возможными значениями — Display и Ideal.
«Идальный» режим рендерит текст без учета существования пикселов.
Если линия в символе по толщине совпадает с одним пикселом, она может быть спозиционирована точно на пиксел или с дробным смещением, например в пол-пиксела. В первом случае будет четкая линия на экране, во втором — две линии в соседних пиксельных колонках, как в буквах N, l, m во второй строке на скриншоте.
MS долго настаивала, что вся отрисовка такста в WPF должна быть «идеальной», так что на мониторах на шрифты среднего и мелкого размера было страшно смотреть.
В WPF 4 добавили поддержку четкой отрисовки на обычных дисплеях и возможность выбора режима через TextFormattingMode с двумя возможными значениями — Display и Ideal.
+1
Мне нравятся кастомные окна, однако сильно раздражает то, что они не умеют вести себя как полноценные окна — я часто пользуюсь логикой, которая работает при перетаскивании окна за заголовок — потянул заголовок в самый верх экрана — окно развернулось на весь экран, потянул вниз — окно стало нормальным, и т.д.
Я уже и забыл когда нажимал на среднюю кнопку в заголовке окна — все окна таскаю за заголовок.
Без реализации этого поведения я не стал бы включать кастомный стиль окна в свой коммерческий проект.
Кстати, DevExpress для WinForms кастомизирует окно, но делает это путем перерисовки родного заголовка окна, поэтому окно хоть и выглядит кастомным, но ведет себя как нужно.
Я уже и забыл когда нажимал на среднюю кнопку в заголовке окна — все окна таскаю за заголовок.
Без реализации этого поведения я не стал бы включать кастомный стиль окна в свой коммерческий проект.
Кстати, DevExpress для WinForms кастомизирует окно, но делает это путем перерисовки родного заголовка окна, поэтому окно хоть и выглядит кастомным, но ведет себя как нужно.
+6
А мне статья понравилась, пусть и ничего сверхъестественного не описывает. Сам программирую на WPF и учитывая не совсем ясные перспективы данного фреймворка, рад любым статьям на эту тему, автору спасибо. А солюшен MahApps.Metro, между прочим, занимает 20 мб, и не факт что в большинстве проектов он нужен полностью.
+1
У меня скомпиленное приложение с MahApps.Metro + MahApps.Resources + Xceed.DataGrid + WPFToolkit Extended весит примерно 4 МБ. В них 2.41 МБ приходится на DataGrid и WPFToolkit. Сколько весит солюшен не важно.
Мой солюшен весит 19+ МБ, из которых 4 МБ — собранное приложение (папка bin), 13 МБ папка packages от NuGet. В packages только 1+ МБ приходится на MahApps.
Так что не вводите в заблуждение. Вот если б Вы сказали, мол, «не всегда лицензионная политика проекта допускает использование некоторых сторонних либ», то я бы, пожалуй, согласился.
PS: а за провокацию «учитывая не совсем ясные перспективы данного фреймворка» минусовать все равно не стану :)
Мой солюшен весит 19+ МБ, из которых 4 МБ — собранное приложение (папка bin), 13 МБ папка packages от NuGet. В packages только 1+ МБ приходится на MahApps.
Так что не вводите в заблуждение. Вот если б Вы сказали, мол, «не всегда лицензионная политика проекта допускает использование некоторых сторонних либ», то я бы, пожалуй, согласился.
PS: а за провокацию «учитывая не совсем ясные перспективы данного фреймворка» минусовать все равно не стану :)
0
Good for you. Но мои слова все-таки означают именно то, что написано, а именно если нужно решить какую-то небольшую задачу в проекте, попутно при этом немного размяв мозг прочтением документации и написанием живого кода, не надо этого бояться. А если есть желание и возможность сформулировать и оформить красиво свои исследования для других в виде подобной статьи — это вообще отлично. Просто нужно четко давать себе отчет, где творчество, а где изобретение велосипеда (например, собственный MVVM фреймворк или ORM пилить я никого не призываю). Мериться чем-бы то ни было я тем более не собирался, тут не магабайты важны, а сам принцип. Кстати, на репозиторий MahApps я подписался сразу как узнал о нем, и в одном из будущих проектов возможно буду его использовать.
Касаемо перспектив WPF — никакая это не провокация, просто мысли вслух. Уж очень активно в последнее время Microsoft продвигает HTML5/CSS3, и несмотря на чистосердечные обещания, что на WPF разработку это не повлияет, начинают возникать сомнения. C# то точно ничего не грозит хотя бы из-за ASP.NET/MVC, но судьба десктопной разработки в далекой перспективе уже как минимум не однозначна. Мое субьективное мнение, как человека, который сейчас работает в данном направлении и непосредственно в нем заинтересован. Вообщем, подводя итог, не надо искать черную кошку в темной комнате, особенно если ее там нет. Удачи.
Касаемо перспектив WPF — никакая это не провокация, просто мысли вслух. Уж очень активно в последнее время Microsoft продвигает HTML5/CSS3, и несмотря на чистосердечные обещания, что на WPF разработку это не повлияет, начинают возникать сомнения. C# то точно ничего не грозит хотя бы из-за ASP.NET/MVC, но судьба десктопной разработки в далекой перспективе уже как минимум не однозначна. Мое субьективное мнение, как человека, который сейчас работает в данном направлении и непосредственно в нем заинтересован. Вообщем, подводя итог, не надо искать черную кошку в темной комнате, особенно если ее там нет. Удачи.
0
> не надо искать черную кошку в темной комнате
Не искал. Читал Ваш коммент буквально
> А солюшен MahApps.Metro, между прочим, занимает 20 мб, и не факт что в большинстве проектов он нужен полностью.
По факту ответил по реальные размеры и про то, что неприменим он может быть совсем по другим причинам, о которых Вы не написали.
> Касаемо перспектив WPF — никакая это не провокация, просто мысли вслух.… Мое субьективное мнение, как человека, который сейчас работает в данном направлении
и
> Сам программирую на WPF и учитывая не совсем ясные перспективы данного фреймворка, рад любым статьям на эту тему
Довольно разные формулировки. В предыдущем комменте не было написано, что это только ваше субъективное мнение/впечатление.
> Но мои слова все-таки означают именно то, что написано, а именно если нужно решить какую-то небольшую задачу в проекте, попутно при этом немного размяв мозг прочтением документации и написанием живого кода, не надо этого бояться.
Во-первых, написано у Вас было в другом ключе. Во-вторых, в реальном проекте всегда приходится взвешивать время на изобретение «таких вот» как раз велосипедов и профит от использования сторонних решений.
> Просто нужно четко давать себе отчет, где творчество, а где изобретение велосипеда
Ну в данном-то случае мы видим именно велик с кастомным протектором шин? Или Вы все же считаете это новым решением?
Я так понял процитированную фразу должно было составить малось иначе. Универсальных решений сторонних не бывает. Всегда стоит выбор: взять готовое решение и выкинуть лишнее да обтесать острые углы ЛИБО написать свое нативное решение, четко отвечающее требованиям данного проекта. Т.е. проблема «Fast Implementation vs Best Fit». Это вы имели в виду?
Не искал. Читал Ваш коммент буквально
> А солюшен MahApps.Metro, между прочим, занимает 20 мб, и не факт что в большинстве проектов он нужен полностью.
По факту ответил по реальные размеры и про то, что неприменим он может быть совсем по другим причинам, о которых Вы не написали.
> Касаемо перспектив WPF — никакая это не провокация, просто мысли вслух.… Мое субьективное мнение, как человека, который сейчас работает в данном направлении
и
> Сам программирую на WPF и учитывая не совсем ясные перспективы данного фреймворка, рад любым статьям на эту тему
Довольно разные формулировки. В предыдущем комменте не было написано, что это только ваше субъективное мнение/впечатление.
> Но мои слова все-таки означают именно то, что написано, а именно если нужно решить какую-то небольшую задачу в проекте, попутно при этом немного размяв мозг прочтением документации и написанием живого кода, не надо этого бояться.
Во-первых, написано у Вас было в другом ключе. Во-вторых, в реальном проекте всегда приходится взвешивать время на изобретение «таких вот» как раз велосипедов и профит от использования сторонних решений.
> Просто нужно четко давать себе отчет, где творчество, а где изобретение велосипеда
Ну в данном-то случае мы видим именно велик с кастомным протектором шин? Или Вы все же считаете это новым решением?
Я так понял процитированную фразу должно было составить малось иначе. Универсальных решений сторонних не бывает. Всегда стоит выбор: взять готовое решение и выкинуть лишнее да обтесать острые углы ЛИБО написать свое нативное решение, четко отвечающее требованиям данного проекта. Т.е. проблема «Fast Implementation vs Best Fit». Это вы имели в виду?
0
Была как-то статья про плеер Meridian — музыкальный плеер в стиле Metro для Вконтакте. Интерфейс также сделан под metro style. Доступны исходники первой версии приложения. При желании можно покопаться в исходниках и посмотреть как там реализовано.
0
Sign up to leave a comment.
WPF: Нестандартное окно