2008-10-31 52 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; 
相關問題