winforms 在Windows窗体或WPF应用程序中使用“Wingdings”字体是否合适?

cwxwcias  于 2023-03-13  发布在  Windows
关注(0)|答案(6)|浏览(234)

我有一个WPF控件,它有一个“投资者”列表,在列表的右列,有一个“删除”按钮。
我可以浪费一些时间在Photoshop中制作一个“X”的图像,或者,我可以只使用Wingdings字体并将内容设置为“φ”(这是一个看起来很酷的删除按钮)。
我的想法是...虽然不是每台计算机上都有每个字体家族,但我非常肯定地说,如果您正在运行我的WPF Windows窗体程序,那么您就有了Wingdings。
你认为呢?请试着给予统计数据(而不仅仅是感觉)。我应该担心字体大小吗?等等。

fcy6dtqo

fcy6dtqo1#

老实说,如果您正在使用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>

只要将这种风格应用到一个按钮上,你就会得到一个即时的“删除”按钮!

x9ybnkn6

x9ybnkn62#

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

qojgxg4l

qojgxg4l3#

对不起,我想不出有什么比使用翼字符作为控件更能让应用程序看起来更业余的了。

erhoui1w

erhoui1w4#

假设您可以显示Unicode,那么对于您要尝试做的事情,在许多字体中有大量的glyph。
例如,这是一个Unicode字符(可能是)Arial:✖
我从Unicode browser display中获取了字符引用,但我相信还有比这里更好的地方可以找到

r3i60tvu

r3i60tvu5#

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

u4vypkhs

u4vypkhs6#

大多数问题是忘记添加字节大小。
在C#(Winform)中我用途:

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

因此我可以:

myTextBoxt.Font = wingdings2;

相关问题