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=""/>
<Button FontFamily="Segoe UI Symbol" Content=""/>
呈现为:
此字体预装在所有版本的 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 - 使用标准按钮创建带有向上和向下箭头的按钮的主要内容,如果未能解决你的问题,请参考以下文章
如何在离子4中单击向下和向上箭头图标按钮垂直离子项目滚动到底部和顶部?