WPF-使用标准按钮创建带有向上和向下箭头的按钮


72

我想使用标准按钮背景但带有黑色箭头来创建一些向上和向下按钮。

使用WPF实现此目标的最佳方法是什么?

马尔科姆

Answers:


168

我发现Marlett(Windows内置的字体)很适合这种事情。

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

输出:

在此处输入图片说明


7
哇。我知道这不像手工绘制一个三角形多边形那样“ WPF-y”,但仍然……没想到投票会失败。
马特·汉密尔顿,

3
单击开始|运行,然后键入“ charmap”-然后可以切换到Marlett并进行查看。我相信这是Windows 95最初用于呈现其所有UI按钮字形的字体。
马特·汉密尔顿,

5
+1解决了我的问题。比每次绘制三角形要好得多。非常方便知道。谢谢!
乔伊(Joey)

2
在Silverlight中,“ Webdings”将是用于此目的的字体。
Doguhan Uluca

1
根据塔兰(Taran)的回答,这可能是一种过时的字体,至少在所有Windows版本7及更高版本中都可用。
Dabblernl

112

如果不为更紧凑的形状定义提及几何迷你语言(或“路径标记语法”),那么关于此主题的讨论将是不完整的:

  <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线到1,6线到6,0,然后关闭形状(Z)。

还有一种曲线语法。


5
左右箭头分别为:Data =“ M -2 6 L 4 12 L 4 0 Z” Data =“ M 2 12 L 9 6 L 2 0 Z”
Tim

@Tim这些不是对称的:/
BartoszKP

感谢您的解释:)终于知道L,M,Z这些字符代表什么!!
MRID

37

现在,首选的方法是使用Segoe UI Symbol。它替代了Marlett,并提供了许多有用的字形。上下会是

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

呈现为:

在此处输入图片说明

Windows 7+的所有版本上均预安装了此字体。


4
该字体已由Windows 10的Segoe MDL2 Assets代替。为Segoe UI Symbol提供的链接现在就在那里。请注意,Windows 10上没有Segoe UI符号,Windows 8.1上没有Segoe MDL2资产。
Dabblernl

由于它是当今的首选方法,因此应该更多地考虑此答案以提高可见性。
Christian Ivicevic

6

您可以创建一个Polygon代表上下三角形的,然后将其设置为按钮的内容:

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

您可以调整它们以绘制不同的图形,但这通常是用于基本几何图形的XAML。


3

如果您想使用带有基本矩形的箭头,可以使用此示例...

<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>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.