Сообщение Весёлая кнопыська AwesomeButton :) от 29.06.2023 21:41
Изменено 29.06.2023 21:58 Baiker
Весёлая кнопыська AwesomeButton :)
Очень люблю, когда на кнопках есть цветные иконки, позволяющие мгновенно понимать назначение (это у меня ещё со времён Delphi повелось).
Но т.к. гемороиться с картинками неохота, использую бесплатный Awesome Font (версии 5).
Соотв. кнопка состоит из TextBlock для иконки и TextBlock для текста. Самые часто нужные проперти вынул на верхний уровень.
Получился вот такой говнокодик:
Если выставлять IconPos, можно регулировать, где иконка появится — на всех 4 сторонах света. Обратите внимание ещё на txtCaption и txtIcon — это как раз "выставленные наружу" наши текстбоксы, позволяющие в коде
регулировать то, что не видно в WPF. К слову, почему-то нельзя написать в XAML
Если подскажете ПОЧЕМУ, буду очень рад. (сейчас это поля, но даже когда они были пропертями, всё равно XAML не позволял такой финт)
Публикую затем, что в WPF такого нет и не будет — может кому пригодится, чтобы самим не гемороиться. Ну и цель №2 — критика.
Прежде, чем вы закидаете говном мою кнопыську, сразу напишу в оправдание: я не особый спец по WPF, юзаю в осн. готовые контролы, а процесс создания кнопки с нуля — это полный мрак! (спасибо MS)
Соотв. я решил задачу максимально простым методом — тупо унаследовал класс и добавил пропертей. Это я к тому, что этот путь тоже оправдан — люди, которые не особо углублялись в WPF, вполне смогут улучшать мой код.
Короче, прошу не столько возгласов "да тут шаблоны надо было на 3 километра написать!", сколько рациональных улучшений именно для моего варианта контрола. Понятно, что кое-что нахардкодил, но это невелик грех, интересны остальные аспекты.
Всем заранее спасибо!
Но т.к. гемороиться с картинками неохота, использую бесплатный Awesome Font (версии 5).
Соотв. кнопка состоит из TextBlock для иконки и TextBlock для текста. Самые часто нужные проперти вынул на верхний уровень.
Получился вот такой говнокодик:
Незамутнённый C# код | |
| |
Если выставлять IconPos, можно регулировать, где иконка появится — на всех 4 сторонах света. Обратите внимание ещё на txtCaption и txtIcon — это как раз "выставленные наружу" наши текстбоксы, позволяющие в коде
регулировать то, что не видно в WPF. К слову, почему-то нельзя написать в XAML
<AwesomeButton txtCaption.FontSize="100" />
Если подскажете ПОЧЕМУ, буду очень рад. (сейчас это поля, но даже когда они были пропертями, всё равно XAML не позволял такой финт)
Публикую затем, что в WPF такого нет и не будет — может кому пригодится, чтобы самим не гемороиться. Ну и цель №2 — критика.
Прежде, чем вы закидаете говном мою кнопыську, сразу напишу в оправдание: я не особый спец по WPF, юзаю в осн. готовые контролы, а процесс создания кнопки с нуля — это полный мрак! (спасибо MS)
Соотв. я решил задачу максимально простым методом — тупо унаследовал класс и добавил пропертей. Это я к тому, что этот путь тоже оправдан — люди, которые не особо углублялись в WPF, вполне смогут улучшать мой код.
Короче, прошу не столько возгласов "да тут шаблоны надо было на 3 километра написать!", сколько рациональных улучшений именно для моего варианта контрола. Понятно, что кое-что нахардкодил, но это невелик грех, интересны остальные аспекты.
Всем заранее спасибо!
Весёлая кнопыська AwesomeButton :)
Очень люблю, когда на кнопках есть цветные иконки, позволяющие мгновенно понимать назначение (это у меня ещё со времён Delphi повелось).
Но т.к. гемороиться с картинками неохота, использую бесплатный Awesome Font (версии 5).
Соотв. кнопка состоит из TextBlock для иконки и TextBlock для текста. Самые часто нужные проперти вынул на верхний уровень.
Получился вот такой говнокодик:
Если выставлять IconPos, можно регулировать, где иконка появится — на всех 4 сторонах света. Обратите внимание ещё на txtCaption и txtIcon — это как раз "выставленные наружу" наши текстбоксы, позволяющие в коде
регулировать то, что не видно в WPF. К слову, почему-то нельзя написать в XAML
Если подскажете ПОЧЕМУ, буду очень рад. (сейчас это поля, но даже когда они были пропертями, всё равно XAML не позволял такой финт) Ну а работающий вариант такой:
Публикую затем, что в WPF такого нет и не будет — может кому пригодится, чтобы самим не гемороиться. Ну и цель №2 — критика.
Прежде, чем вы закидаете говном мою кнопыську, сразу напишу в оправдание: я не особый спец по WPF, юзаю в осн. готовые контролы, а процесс создания кнопки с нуля — это полный мрак! (спасибо MS)
Соотв. я решил задачу максимально простым методом — тупо унаследовал класс и добавил пропертей. Это я к тому, что этот путь тоже оправдан — люди, которые не особо углублялись в WPF, вполне смогут улучшать мой код.
Короче, прошу не столько возгласов "да тут шаблоны надо было на 3 километра написать!", сколько рациональных улучшений именно для моего варианта контрола. Понятно, что кое-что нахардкодил, но это невелик грех, интересны остальные аспекты.
Всем заранее спасибо!
Но т.к. гемороиться с картинками неохота, использую бесплатный Awesome Font (версии 5).
Соотв. кнопка состоит из TextBlock для иконки и TextBlock для текста. Самые часто нужные проперти вынул на верхний уровень.
Получился вот такой говнокодик:
Незамутнённый C# код | |
| |
Если выставлять IconPos, можно регулировать, где иконка появится — на всех 4 сторонах света. Обратите внимание ещё на txtCaption и txtIcon — это как раз "выставленные наружу" наши текстбоксы, позволяющие в коде
регулировать то, что не видно в WPF. К слову, почему-то нельзя написать в XAML
<AwesomeButton txtCaption.FontSize="100" />
Если подскажете ПОЧЕМУ, буду очень рад. (сейчас это поля, но даже когда они были пропертями, всё равно XAML не позволял такой финт) Ну а работающий вариант такой:
<cmn:AwesomeButton IconPos="Left" Click="btnRefresh_Click" Text="Refresh" IconText="" IconSize="18" IconColor="DodgerBlue" Padding="3" />
Публикую затем, что в WPF такого нет и не будет — может кому пригодится, чтобы самим не гемороиться. Ну и цель №2 — критика.
Прежде, чем вы закидаете говном мою кнопыську, сразу напишу в оправдание: я не особый спец по WPF, юзаю в осн. готовые контролы, а процесс создания кнопки с нуля — это полный мрак! (спасибо MS)
Соотв. я решил задачу максимально простым методом — тупо унаследовал класс и добавил пропертей. Это я к тому, что этот путь тоже оправдан — люди, которые не особо углублялись в WPF, вполне смогут улучшать мой код.
Короче, прошу не столько возгласов "да тут шаблоны надо было на 3 километра написать!", сколько рациональных улучшений именно для моего варианта контрола. Понятно, что кое-что нахардкодил, но это невелик грех, интересны остальные аспекты.
Всем заранее спасибо!