Уместно ли использовать шрифты Wingdings в приложении Windows Forms или WPF? - PullRequest
7 голосов
/ 31 октября 2008

У меня есть элемент управления WPF со списком «Инвесторов», а в правом столбце списка кнопка «Удалить».

Я мог бы потратить некоторое время на создание изображения "х" в фотошопе. Или я мог бы просто использовать шрифт Wingdings и установить для контента значение «Õ» (что делает классную кнопку удаления).

Это уместно? Я думаю, что ... хотя не все семейства шрифтов есть на каждом компьютере, я уверен, что можно с уверенностью сказать, что если вы используете мою программу Windows Forms WPF, то у вас есть Wingdings.

Что ты думаешь? Пожалуйста, попробуйте дать статистику (не только чувства) по этому вопросу. Должен ли я беспокоиться о размере шрифта? и т.д.

Ответы [ 6 ]

15 голосов
/ 31 октября 2008

Честно говоря, если вы используете 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>

Просто примените этот стиль к кнопке, и вы сразу же получите кнопку «Удалить»!

3 голосов
/ 31 октября 2008

Я думаю, что у вас все будет хорошо, особенно с WPF. Я не знаю, есть ли конкретный шрифт Wingdings на каждом компьютере с Windows (возможно, да), но я знаю, что символы из шрифта Marlett используются в Win XP UI.

3 голосов
/ 31 октября 2008

Извините, но я не могу придумать ничего такого, что бы приложение выглядело более любительским, чем использование крылатых символов для элементов управления.

3 голосов
/ 31 октября 2008

Предполагая, что вы можете отобразить Unicode, во многих шрифтах есть множество символов для того, что вы пытаетесь сделать.

Например, это символ Unicode в (вероятно) Arial: ✖

Я взял ссылку на символ из http://www1.tip.nl/~t876506/UnicodeDisplay.html, но я уверен, что есть лучшие места, чтобы узнать, чем это

2 голосов
/ 12 мая 2009

Я думаю, что хорошим решением было бы взять глифы, которые вам нравятся, из Wingdings и преобразовать их в формы WPF в качестве ресурсов вашего приложения. Это добавит всего несколько килобайт в ваше приложение, и вы не будете зависеть от Wingdings.

0 голосов
/ 30 декабря 2009

Большая часть проблемы заключалась в том, что вы забыли добавить размер в байтах.

В C # (Winform) я использую:

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

Так что я могу:

myTextBoxt.Font = wingdings2;
...