gpt4 book ai didi

wpf - 如何用图形路径完全替换WPF按钮的内容?

转载 作者:行者123 更新时间:2023-12-02 09:02:03 24 4
gpt4 key购买 nike

我已经使用 Blend 解构了一个标准 WPF 按钮,并成功创建了一个样式精美的按钮,但我无法弄清楚如何使路径填充按钮空间的内部(按钮宽度和高度)。我也不确定是否需要指定 ContentPresenter 或者它是否正确。我在按钮中间的文本后面(正常情况下),但后面有我的图形路径。

任何人都可以向我提供有关如何实现此目标的反馈吗?样式定义为;

    <ControlTemplate x:Key="CurvedButton" TargetType="{x:Type Button}">
<Grid>
<Path Fill="#ff951c1f" Data="F1 M 64,16 C 64,24 56,31 48,31 L 15,31 C 7,31 0,24 0,16 C 0,7 7,0 15,0 L 48,0 C 56,0 64,7 64,16 Z" />
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Width="Auto" />
</Grid>
</ControlTemplate>

该按钮的用法是;

<StackPanel>
<Button Template="{StaticResource CurvedButton}" FontFamily="MS Trebuchet" FontSize="40" Width="200" Height="120" Foreground="Black">XXXXXXXXXXX</Button>
</StackPanel>

当一切完成后,它应该看起来像一个弯曲的红色按钮。

提前致谢

瑞恩

最佳答案

您可以采取一些措施来获得所需的结果。

将路径放入 View 框中并拉伸(stretch)以填充:

<ControlTemplate x:Key="CurvedButton" TargetType="{x:Type Button}">
<Grid>
<Viewbox Stretch="Fill">
<Path Fill="#ff951c1f" Data="F1 M 64,16 C 64,24 56,31 48,31 L 15,31 C 7,31 0,24 0,16 C 0,7 7,0 15,0 L 48,0 C 56,0 64,7 64,16 Z" />
</Viewbox>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Width="Auto" />
</Grid>
</ControlTemplate>

使用边框而不是路径:

<ControlTemplate x:Key="CurvedButton" TargetType="{x:Type Button}">
<Grid>
<Border CornerRadius="40" Background="#ff951c1f">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Width="Auto" />
</Border>
</Grid>
</ControlTemplate>

关于wpf - 如何用图形路径完全替换WPF按钮的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/403629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com