1

スタイルに別のプロジェクトを使用しており、その中に次のようなコード行があります。

<ResourceDictionary
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    >

    <Style x:Key="NazaninFont"  TargetType="Control">
        <Setter Property="FontFamily" Value="pack://application:,,,/Extra/Fonts/#IRNazanin"/>
    </Style>

    ......

</ResourceDictionary> 

私の別のスタイル (コントロール効果など) は、次のように要素でスタイル キーを使用するとうまく機能します。

Style="{ms:MyStyleRef ResourceKey=MyStyleKey}"

しかし、Lable要素で次のコードを使用すると

<Label Style="{ms:MyStyleRef ResourceKey=NazaninFont}" x:Name="LabelRemainingSec" Content="{Binding RemainingSec}"/>

私は持っている:

  • デザインタイム >>プロパティパネルのIRNazaninFontFamilyに設定されているのに、デザイナのフォントビューが正しくない

しかし

  • 実行時に >> Tahoma (ウィンドウ フォント)FontFamilyに設定されています。

また、私はこの方法でテストしました:

次のように、ウィンドウの上部にある別のプロジェクトのフォント スタイルにスタイル ベースを追加しました。

<Style x:Key="NazaninFont" BasedOn="{ms:MyStyleRef ResourceKey=NazaninFont}" TargetType="Label"/>

次に、Lable normaly で使用します。

<Label Style="{StaticResource NazaninFont}" x:Name="LabelRemainingSec" Content="{Binding RemainingSec}"/>

結果は前の方法と同じです:

では、Design TimeIRNazaninが使用FontFamilyされており、XAML デザイナーでフォント ビューが正しくありません。その中にはタホマがありますRun Time

私の問題についてどう思いますか?私のスタイルでは、Labelコントロールへのフォント パスを正しく指定できないと思います。

4

1 に答える 1

1

これはあなたが求めているものかもしれませんし、そうでないかもしれませんが、私はそれが次のようであると推測します:p

FontFamily リソースは、リソース ディクショナリで、または実際に必要な場所で定義できます。Window.Resources で定義した方法に注意してください。

「フォント」と呼ばれるフォルダー内にプロジェクトに物理フォントファイルを含め、フォント名:値を使用して参照しました。これは、フォント ファイルをダブルクリックすると表示されます (デモ テキストのヒープ全体とインストール オプションが表示されます)。ファイル自体の名前を使用するのではなく、参照するときに Font name: 値を使用します。また、フォント参照の先頭にある # を忘れないでください。:)

次に、フォントファミリーの他のリソースと同じように呼び出します

両方のラベルが異なるフォントになります。残念ながら、フォントの変更は設計時には表示されず、実行時にのみ表示されることに注意してください。

デモンストレーションとしての作業コード:

<Window x:Class="Tinker.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="400" Width="500">
    <Window.Resources>
        <FontFamily x:Key="MyFont">fonts/#Roboto Thin</FontFamily> 
    </Window.Resources>
    <StackPanel VerticalAlignment="Top">
        <Label FontSize="36" Content="Helloooooo World!"/>
        <Label FontSize="36" FontFamily="{StaticResource MyFont}" Content="Helloooooo World!"/>
    </StackPanel>
</Window>
于 2015-02-13T14:16:41.577 に答える