Windows 양식 또는 WPF 앱에서 "Wingdings"글꼴을 사용하는 것이 적절합니까?

StackOverflow https://stackoverflow.com/questions/253431

문제

"투자자"목록이있는 WPF 컨트롤과 목록의 오른쪽 열에 "삭제"버튼이 있습니다.

Photoshop에서 "x"이미지를 만드는 데 시간을 낭비 할 수 있습니다. 또는 Wingdings 글꼴을 사용하여 콘텐츠를 ""(시원한 삭제 버튼을 만듭니다)로 설정할 수 있습니다.

이것이 적절합니까? 내 생각은 ... 모든 글꼴 가족이 모든 컴퓨터에있는 것은 아니지만 WPF Windows Forms 프로그램을 실행하는 경우 날개 달링이 있다고 말하는 것이 안전하다고 확신합니다.

어떻게 생각해? 문제에 대한 통계 (감정뿐만 아니라)를 제공하십시오. 글꼴 크기에 대해 걱정해야합니까? 등.

도움이 되었습니까?

해결책

솔직히 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>

이 스타일을 버튼에 적용하면 즉시 "삭제"버튼을 얻습니다!

다른 팁

유니 코드를 표시 할 수 있다고 가정하면 많은 글꼴에 많은 글리프가 있습니다.

예를 들어, 이것은 아마도 (아마) Arial의 유니 코드 문자입니다.

나는 캐릭터를 참조했다 http://www1.tip.nl/~t876506/unicodedisplay.html 하지만 이보다 알아낼 수있는 더 좋은 곳이 있다고 확신합니다.

죄송합니다.하지만 응용 프로그램을 컨트롤에 윙딩 문자를 사용하는 것보다 애플리케이션을 더 아마추어처럼 보이게하는 것은 생각할 수 없습니다.

특히 WPF와 함께 괜찮을 것이라고 생각합니다. 특히 Wingdings Font가 모든 Windows 시스템에 있는지는 모르겠지만 (아마도 예), Marlett Font의 문자가 Win XP UI에 사용된다는 것을 알고 있습니다.

좋은 솔루션은 윙딩에서 좋아하는 글리프를 가져 와서 앱의 리소스로 WPF 모양으로 변환하는 것이라고 생각합니다. 이것은 앱에 몇 개의 KB 만 추가되며 윙딩에 의존하지 않을 것입니다.

대부분의 문제는 바이트 크기를 추가하는 것을 잊어 버렸습니다.

C# (winform)에서 나는 사용한다 :

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

그래서 나는 할 수있다 :

myTextBoxt.Font = wingdings2;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top