2008-12-11 41 views
15

Tôi đang cố gắng thêm phông chữ tùy chỉnh làm tài nguyên trong ứng dụng của mình. Tôi có một "CustomFont" thư mục trong ứng dụng và tất cả các phông chữ bên trong của nó được thiết lập để "Resource"WPF - Thêm Phông chữ Tùy chỉnh

<Window.Resources> 
    <Style x:Key="Gotham-XLight"> 
     <Setter Property="TextElement.FontFamily" 
       Value="/CustomFonts;Component/#Gotham-XLight" /> 
    </Style> 
</Window.Resources> 

Và sau đó trên TextBlock của tôi, tôi có điều này: (bên trong một mạng lưới)

<TextBlock x:Name="TimeTextBlock" Style="{DynamicResource Gotham-XLight}" 
      TextAlignment="Center" FontSize="25" FontWeight="Bold" 
      Foreground="White" Text="TextBlockTimer" 
      Margin="105,242.974,0,226.975" HorizontalAlignment="Left" 
      Width="221.919" /> 

Nhưng tôi không thấy phông chữ của tôi như mọi người nói. Tôi có làm điều gì sai?

Trả lời

19

Bạn có thể muốn kiểm tra tên phông chữ, bạn cần chỉ định tên của phông chữ chứ không phải tên của tệp.

Nhấp đúp vào tệp phông chữ và nó sẽ hiển thị "Tên phông chữ:" đó là những gì bạn muốn đảm bảo được chỉ định trong kiểu của bạn.

+0

Bạn hoàn toàn đúng. Cảm ơn tôi không biết điều đó. –

6

Hãy thử điều này

<Window.Resources> 
    <Style x:Key="Gotham-XLight"> 
     <Setter Property="TextElement.FontFamily" Value="CustomFonts/#Gotham-XLight" /> 
    </Style> 
</Window.Resources> 

Ngoài ra, nếu bạn không có kế hoạch về việc thay đổi phong cách trong thời gian chạy {StaticResource Gotham-XLight} sẽ được nhiều hơn nữa performant.

+0

Tôi không thể làm cho nó hoạt động với '{StaticResource StyleName}' và phải hoàn nguyên về '{DynamicResource StyleName}' sau khi nhận ra vấn đề là gì. – Dinei

2

Trong XAML tôi đã làm nó như thế này:

<Button Grid.Column="1" Grid.RowSpan="2" Name="start" Margin="5" Click="start_Click"> 
     <TextBlock Name="test" FontFamily="pack://application:,,,/Y_Yoga;Component/Resources/#FontAwesome">&#xF04B;</TextBlock> 
    </Button> 

Tuy nhiên, tôi không biết nếu #FontAwesome là tên nhúng phông chữ hay là nó là kết quả mà tôi đổi tên file .ttf.

Hy vọng sẽ hữu ích!

+0

Cố gắng hiểu cú pháp gói: Y_Yoga đại diện cho điều gì? –

+2

Đó chỉ là tên tùy chỉnh của một ứng dụng. Vì vậy, đường dẫn phải giống như FontFamily = "gói: // ứng dụng: ,,,/; Thành phần/Tài nguyên/# " – sdd

Các vấn đề liên quan