C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: WPFでのコントロールフォント指定


(過去ログ 134 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■79390 / inTopicNo.1)  WPFでのコントロールフォント指定
  
□投稿者/ coco (1回)-(2016/03/28(Mon) 17:01:12)

分類:[C#] 

お世話になります。

WPFアプリのFramework verを3.5から4.6へと更新した際の
コントロールフォントの挙動について質問させてい下さい。

Window
|-コントロール

上記の階層において、WindowのFontFamilyを変更しコントロールで明示的にフォントを指定しない限り、
Framework 3.5ではコントロール側には親のWindowのフォントが適用されていました。
ただ、Framework 4.6(4.0以降?)はコントロール側のフォントがシステム依存となっていように見受けられます。


アプリでは外部からフォントの変更が発生するため、 一括してフォントが変更できる3.5の挙動が望ましいです。
Framework 4.6でコントロールのフォントを親からの継承する仕組みを実現できないでしょうか?


引用返信 編集キー/
■79391 / inTopicNo.2)  Re[1]: WPFでのコントロールフォント指定
□投稿者/ Hongliang (424回)-(2016/03/28(Mon) 19:18:32)
Windows 8.1で確認しましたが、.NET 4.6でもFontFamilyは正しく継承されているようです。

<Window x:Class="TestProject.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:n="clr-namespace:System.Numerics;assembly=System.Numerics"
    FontFamily="MS 明朝">
  <!-- .NET 4.6で動作していることを保証するために.NET 4.6で追加された型を使用する -->
  <Window.DataContext><n:Matrix3x2/></Window.DataContext>
  <StackPanel>
    <StackPanel>
      <TextBlock Text="TextBlock"/>
      <TextBox Text="TextBlock"/>
    </StackPanel>
    <UserControl>
      <TextBlock Text="TextBlock"/>
    </UserControl>
    <UserControl FontFamily="MS ゴシック"> <!-- もちろん途中で変更したら子孫も変わる -->
      <TextBlock Text="TextBlock"/>
    </UserControl>
  </StackPanel>
</Window>

引用返信 編集キー/
■79392 / inTopicNo.3)  Re[2]: WPFでのコントロールフォント指定
□投稿者/ coco (2回)-(2016/03/28(Mon) 21:30:08)
No79391 (Hongliang さん) に返信
> Windows 8.1で確認しましたが、.NET 4.6でもFontFamilyは正しく継承されているようです。
>

ありがとうございます。
ご指摘とおり、フォントが適応されているのが確認できました。

WPFのフォントレンダリングが3.5と4.0以降であまりに異なっていたため、
フォントが適応されていないと誤認しておりました。

お手数おかけしました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -