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

Posted

技术标签:

【中文标题】WPF - 使用标准按钮创建带有向上和向下箭头的按钮【英文标题】:WPF - Create buttons with up and down arrows using standard buttons 【发布时间】:2010-09-30 17:59:26 【问题描述】:

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

使用 WPF 完成此任务的最佳方法是什么?

马尔科姆

【问题讨论】:

【参考方案1】:

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

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

输出:

【讨论】:

哇。我知道这不像手工绘制三角形多边形那样“WPF-y”,但仍然......没想到会投反对票。 单击开始|运行并输入“charmap” - 然后您可以切换到 Marlett 并查看一下。我相信它是 Windows 95 最初用于呈现其所有 UI 按钮字形的字体。 +1 解决了我的问题。比每次画一个三角形要好得多。很方便知道。谢谢! 在 Silverlight 中,“Webdings”将是为此使用的字体。 根据 Taran 的回答,这可能是一种过时的字体,至少它适用于 7 及以上的所有 Windows 版本。【参考方案2】:

如果不提及几何迷你语言(或Path Markup Syntax)以获得更紧凑的形状定义,任何关于此主题的讨论都是不完整的:-

  <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 这些不是对称的:/ 谢谢你的解释:) 终于知道L,M,Z这些字符代表什么了!!【参考方案3】:

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

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

呈现为:

此字体预装在所有版本的 windows 7+ 上。

【讨论】:

此字体已被 Segoe MDL2 Assets for Windows 10 替换。为 Segoe UI Symbol 提供的链接现在指向那里。请注意,Windows 10 上不存在 Segoe UI 符号,Windows 8.1 上不存在 Segoe MDL2 资产。 这个答案应该得到更多的关注,因为它是当今的首选方法。【参考方案4】:

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

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

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

【讨论】:

【参考方案5】:

如果你想要一个带有底矩形的箭头,你可以使用这个示例......

<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>

【讨论】:

以上是关于WPF - 使用标准按钮创建带有向上和向下箭头的按钮的主要内容,如果未能解决你的问题,请参考以下文章

wpf中的updown控制

如何在离子4中单击向下和向上箭头图标按钮垂直离子项目滚动到底部和顶部?

想要文本框中的向上和向下箭头来更改列表框选择

将 Slick 轮播水平箭头更改为带有字体真棒箭头的向上和向下箭头

如何在 iOS 7 中创建向上和向下箭头

如何禁止在Qt中使用带有按钮的键盘上的箭头键