2008-10-31 112 views
7

我有一个WPF控件,它有一个“投资者”列表,并在列表的右栏中有一个“删除”按钮。在Windows窗体或WPF应用程序中使用“Wingdings”字体是否合适?

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

这是否合适?我的想法是......虽然并非每个字体家族都在每台计算机上,但我确信可以肯定地说,如果您正在运行我的WPF Windows Forms程序,那么您就有Wingdings。

您认为如何?请尝试提供有关此事的统计数据(不仅仅是感受)。我应该担心字体大小吗?等

+0

FYI:有在Marlett字体一堆图形太。我用它们,我不觉得脏。 http://stackoverflow.com/questions/432384/wpf-create-buttons-with-up-and-down-arrows-using-standard-buttons – kenny 2013-02-18 13:19:19

回答

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> 

这种风格只是适用于一个按钮,你会得到即时“删除”按钮!

+1

好点,WPF允许一些非常酷的矢量的东西......但有Wingdings中有很多可能的东西可能会有人想要。你认为这是所有人走的路吗? (很好的答案btw)。 – 2008-10-31 13:27:53

+0

你+很好的答案。像我一样。 – Will 2008-10-31 13:35:41

+0

我真的很喜欢在WPF的Vector graphics中做很多事情。它可以自我生成清洁,可扩展的图形。根据分辨率的不同,字体可能会也可能不会很好地扩展,这会。 – 2008-10-31 13:37:51

3

假设你可以显示Unicode,许多字体中有很多字形用于你想要做的事情。

例如,这是(可能)宋体Unicode字符:✖

我从http://www1.tip.nl/~t876506/UnicodeDisplay.html了字符引用,但我敢肯定有更好的地方,找出比这

+0

当然,那么您必须希望每个客户端都有字体,或者进入字体部署(我个人不喜欢)。 – MusiGenesis 2008-10-31 14:14:23

3

对不起,但我想不出任何让应用程序看起来比使用控制角色的角色更加业余化的东西。

3

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

2

我认为这个很好的解决方案是将你喜欢的来自Wingdings的字形转换为WPF形状,作为你的应用程序的资源。这将只为您的应用程序添加几个kB,您将不会依赖Wingdings。

0

大部分问题是忘记添加字节大小。

在C#(WinForm的)我使用:

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

,所以我可以:

myTextBoxt.Font = wingdings2; 
相关问题