WPF - создание кнопок со стрелками вверх и вниз с помощью стандартных кнопок

Я хочу создать несколько кнопок вверх и вниз, используя стандартную кнопку фон, но с черными стрелками.

Как лучше всего добиться этого с помощью WPF?

Малькольм

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
73
0
67 953
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Я считаю, что Marlett (шрифт, встроенный в Windows) подходит для подобных задач.

<Button FontFamily = "Marlett" FontSize = "20" Content = "5"/>
<Button FontFamily = "Marlett" FontSize = "20" Content = "6"/>

Выход:

Ух ты. Я знаю, что это не такой "WPF-y", как рисование треугольного многоугольника вручную, но все же ... не ожидал голосов против.

Matt Hamilton 11.01.2009 08:42

Я считаю, что это нормальный вариант, какие еще интересные символы есть в шрифте?

Ian Oakes 11.01.2009 09:37

Нажмите «Пуск | Выполнить» и введите «charmap» - затем вы можете переключиться на Marlett и посмотреть. Я считаю, что это шрифт, который изначально использовался Windows 95 для визуализации всех глифов кнопок пользовательского интерфейса.

Matt Hamilton 11.01.2009 10:05

+1 Исправил мою проблему. Намного приятнее, чем каждый раз рисовать треугольник. Очень полезно знать. Спасибо!

Joey 11.10.2011 18:47

В Silverlight для этого можно использовать шрифт «Webdings».

Doguhan Uluca 24.10.2011 21:25

Согласно ответу Тарана, теперь это может быть устаревший шрифт, по крайней мере, он доступен во всех версиях Windows, начиная с 7 и выше.

Dabblernl 14.08.2016 12:06

@Dabblernl Я запускал это в окне Windows XP, и он тоже работал нормально.

user4574 14.02.2017 06:11

@ Мэтт Гамильтон, что там будет для стрелок влево и вправо?

sujai 21.11.2017 14:27

Удивительный! Было бы неплохо, если бы вы могли расширить ответ, включив в него некоторые основные значки, такие как стрелка вверх, стрелка вниз, плюс минус и т. д.

Shimmy Weitzhandler 22.11.2017 00:40

@shimmy Запустите charmap.exe, переключитесь на шрифт Marlett и скопируйте / вставьте так, как вам нравится. Здесь не так много символов, но они полезны.

Matt Hamilton 22.11.2017 00:59

@MattHamilton Да, я только что это сделал. Похоже, шрифт Marlett довольно ограничен. В любом случае это еще хорошо! Спасибо за ваш быстрый ответ!

Shimmy Weitzhandler 22.11.2017 01:01

Использование шрифта, который, как вы не можете гарантировать, будет представлен в будущих версиях ОС, кажется не очень хорошим решением.

BartoszKP 09.08.2018 17:00

Вы можете создать Polygon, который представляет ваши треугольники вверх и вниз, а затем установить их в качестве содержимого кнопок:

<Button>
  <Polygon 
    Points = "300,200 450,200 375,300 300,200"
    Stroke = "Black">
    <Polygon.Fill>
      <SolidColorBrush Color = "Black" />
    </Polygon.Fill>
  </Polygon>
</Button>

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

Никакое обсуждение этого предмета не будет полным без упоминания мини-языка геометрии (или Синтаксис разметки пути) для более компактного определения формы:

  <Button>
    <Path Fill = "Black" Data = "M 0 6 L 12 6 L 6 0 Z"/>
  </Button>
  <Button>
    <Path Fill = "Black" Data = "M 0 0 L 6 6 L 12 0 Z"/>
  </Button>

Первый описывает перемещение к 0,6 линии на 12,6 линии на 6,0, а затем закрытие фигуры (Z).

Также есть кривой синтаксис.

Стрелки влево и вправо соответственно: Data = "M -2 6 L 4 12 L 4 0 Z" Data = "M 2 12 L 9 6 L 2 0 Z".

Tim 03.09.2016 01:41

@Tim Они не симметричны: /

BartoszKP 09.08.2018 17:10

Спасибо за объяснение :) наконец-то знаю, что означают эти символы L, M, Z !!

mrid 22.04.2019 06:21

Если вы хотите иметь стрелку с базовым прямоугольником, вы можете использовать этот образец ...

<Button >
   <Polygon   Stretch = "Fill"  Fill = "Black" Points = "0,0 0,30 0,10 30,10 30,-10 45,10 30,30 30,20 0,20 0,0 30,0 30,10 0,10" />
</Button>

Предпочтительный способ сделать это сейчас - использовать Символ пользовательского интерфейса Segoe. Он заменяет Марлетта и предоставляет множество полезных глифов. Вверх и вниз было бы

<Button FontFamily = "Segoe UI Symbol" Content = "&#xE1FD;"/>    
<Button FontFamily = "Segoe UI Symbol" Content = "&#xE110;"/>

Что отображается как:

Этот шрифт предустановлен во всех версиях Windows 7+.

Этот шрифт был заменен на Segoe MDL2 Assets для Windows 10. Ссылка, предоставленная для Segoe UI Symbol, теперь ведет туда. Обратите внимание, что символ пользовательского интерфейса Segoe отсутствует в Windows 10, а активы Segoe MDL2 отсутствуют в Windows 8.1.

Dabblernl 14.08.2016 12:02

За этот ответ следует проголосовать больше для наглядности, поскольку в настоящее время это наиболее распространенный метод.

Christian Ivicevic 24.09.2017 14:53

Другие вопросы по теме