Pergunta

Eu tenho um controle WPF, que tem uma lista de "Investidores", e na coluna da direita da lista, um botão "Delete".

Eu poderia perder algum tempo fazendo uma imagem de um "x" no photoshop. Ou, eu poderia usar apenas fonte Wingdings e definir o conteúdo para "O" (que faz um olhar fresco botão delete).

É este apropriado? Meu pensamento é ... enquanto não cada família de fontes é em cada computador, eu tenho certeza de que é seguro dizer que se você estiver executando programa meu WPF Windows Forms, então você tem Wingdings.

O que você acha? Por favor tente dar estatísticas (não apenas sentimentos) sobre o assunto. Devo me preocupar com o tamanho da fonte? etc.

Foi útil?

Solução

Honestamente, se você estiver usando WPF, é provavelmente tão fácil de usar um caminho para fazer um 'x' forma:

    <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>

Basta aplicar este estilo para um botão, e você terá um instante o botão "delete"!

Outras dicas

Assumindo que você pode exibir Unicode, há uma abundância de glifos em muitas fontes para o que você está tentando fazer.

Por exemplo, este é um caractere Unicode em (provavelmente) Arial: ?

Tomei a referência de caráter de http://www1.tip.nl/~t876506 /UnicodeDisplay.html mas estou certo há melhores lugares para descobrir que isto

Desculpe, mas eu não consigo pensar em qualquer coisa que faz um olhar aplicação mais amador do que o uso de Wingding caracteres para controles.

Eu acho que você deve estar bem, especialmente com WPF. Eu não sei se fonte Wingdings em particular, é em cada máquina Windows (provavelmente sim), mas eu sei personagens de Marlett fonte são usados ??em Win XP UI.

Eu acho que boa solução seria tomar os glifos você gosta de Wingdings, e convertendo-os em formas WPF, como recursos de seu aplicativo. Isto irá adicionar apenas alguns kB ao seu aplicativo e você não será dependente de Wingdings.

A maioria do problema foi esquecer de adicionar o tamanho byte.

Em C # (WinForm) que eu uso:

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

Então eu pode:

myTextBoxt.Font = wingdings2;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top