8

我有一个 WPF 控件,它有一个“投资者”列表,在列表的右栏中,有一个“删除”按钮。

我可以浪费一些时间在 Photoshop 中制作“x”的图像。或者,我可以只使用 Wingdings 字体并将内容设置为“Õ”(这是一个看起来很酷的删除按钮)。

这合适吗?我的想法是……虽然不是每个字体系列都在每台计算机上,但我很确定可以肯定地说,如果您正在运行我的 WPF Windows 窗体程序,那么您就有 Wingdings。

你怎么看?请尝试就此事提供统计数据(不仅仅是感觉)。我应该担心字体大小吗?等等

4

6 回答 6

15

老实说,如果您使用的是 WPF,那么使用路径来制作“x”形状可能同样容易:

    <Style x:Key="DeleteButtonStyle" TargetType="{x:Type Button}">
        <Setter Property="HorizontalAlignment" Value="Stretch"/>
        <Setter Property="HorizontalContentAlignment" Value="Center"/>
        <Setter Property="VerticalAlignment" Value="Stretch"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="Cursor" Value="Hand"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
                        <Path Name="Circle" Data="F1 M 0 7.5 A 7.5 7.5 0 1 1 15 7.5 A 7.5 7.5 0 1 1 0 7.5"/>
                        <Path Fill="White" Data="F1 M 7.5 6 L 10.5,3 12,4.5 9,7.5 12,10.5 10.5,12 7.5,9 4.5,12 3,10.5 6,7.5 3,4.5 4.5,3 Z"/>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Fill" TargetName="Circle" Value="SlateGray"/>
                        </Trigger>
                        <Trigger Property="IsMouseOver" Value="False">
                            <Setter Property="Fill" TargetName="Circle" Value="DarkGray"/>
                        </Trigger>
                        <DataTrigger Binding="{Binding}" Value="{x:Null}">
                            <Setter Property="Visibility" Value="Hidden"/>
                        </DataTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="ToolTip" Value="Delete This Item"/>
    </Style>

只需将此样式应用于按钮,您就会得到一个即时的“删除”按钮!

于 2008-10-31T13:25:08.370 回答
4

我认为你应该没问题,尤其是使用 WPF。我不知道 Wingdings 字体是否在每台 Windows 机器上(可能是),但我知道 Marlett 字体中的字符在 Win XP UI 中使用。

于 2008-10-31T13:34:03.843 回答
3

假设您可以显示 Unicode,许多字体中有大量字形用于您尝试执行的操作。

例如,这是(可能)Arial 中的 Unicode 字符:✖</p>

我从http://www1.tip.nl/~t876506/UnicodeDisplay.html 获取了字符参考,但我相信还有比这更好的地方可以找到

于 2008-10-31T13:27:57.147 回答
3

抱歉,但我想不出有什么比使用翼形字符进行控制更能让应用程序看起来更业余的了。

于 2008-10-31T13:28:27.317 回答
2

我认为不错的解决方案是从 Wingdings 中获取您喜欢的字形,并将它们转换为 WPF 形状,作为您应用程序的资源。这只会为您的应用程序增加几 kB,并且您不会依赖 Wingdings。

于 2009-05-12T12:20:32.107 回答
0

大多数问题是忘记添加字节大小。

在 C#(Winform)中,我使用:

static Font wingdings2 = new Font("Wingdings 2", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(2)));

所以我可以:

myTextBoxt.Font = wingdings2;
于 2009-12-30T19:28:08.787 回答