【XAML】フォントサイズを自動縮小して全体を表示

公開日: : 最終更新日:2015/10/20 Blog, Microsoft ,

【WPF】全体を表示できるようにフォントサイズを自動設定

Viewboxを親にするだけ。
拡大・縮小方法はStretch, StretchDirectionで設定

<Window x:Class="FontTest"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="FontTest" Height="370" Width="300">
    <Grid>
        <Grid.Resources>
            <Style TargetType="{x:Type Viewbox}">
                <!-- 縦横維持してストレッチ(Uniform:既定)-->
                <Setter Property="Stretch" Value="Uniform" />
                <!-- 拡大はしない。縮小だけ。 -->
                <Setter Property="StretchDirection" Value="DownOnly" />
                <Setter Property="HorizontalAlignment" Value="Left" />
                <Setter Property="VerticalAlignment" Value="Top" />
            </Style>
        </Grid.Resources>
        <Grid.RowDefinitions>
            <RowDefinition Height="100"/>
            <RowDefinition Height="100"/>
            <RowDefinition Height="30"/>
        </Grid.RowDefinitions>
        <Border Margin="5" Grid.Row="0" BorderBrush="Gray" BorderThickness="1">
            <Viewbox HorizontalAlignment="Left">
                <TextBlock Width="Auto" x:Name="txtBlock" Text="あいうえお&#xa;かきくけこ&#xa;さしすせそ&#xa;たちつてと&#xa;なにぬねの&#xa;はひふへほ&#xa;まみむめも" />
            </Viewbox>
        </Border>
        <Border Margin="5" Grid.Row="1" BorderBrush="Gray" BorderThickness="1">
            <Viewbox HorizontalAlignment="Left">
                <TextBlock Width="Auto" x:Name="txtBlockMin" Text="あいうえお&#xa;かきくけこ" />
            </Viewbox>
        </Border>
        <Button x:Name="btnCheck" Grid.Row="2" Content="チェック" />
    </Grid>
</Window>

関連記事

no image

【WPF/XAML】Buttonのテキスト(Content)を自動改行/折り返しさせる

今更WPFを触りはじめました。 それまではほぼ.NETは2.0止まりというオワコン開発者です。

記事を読む

VisualStudio2015でiOSアプリケーション開発

こんにちは。 Windows10にアップグレードしました。 VisualStudioも201

記事を読む

no image

KeyboardNavigation以外でFocusVisualStyleを表示させる

WPFです。 結論としてはリフレクションで無理やりやれなくはなさそうという感じ。 元ネタはMSDN

記事を読む

Xamarin.Forms で NavigationPage を PushModalAsync すると例外が発生するときがある

Forms 2.3.4.231 Mapコントロールがあるページで、NavigationPage

記事を読む

Docker for Windows で ドライブ共有が出来ない

Shared Drives タブで Cドライブにチェックをして Apply を押す。 認証ダイ

記事を読む

拡張メソッドは、非ジェネリック静的クラスで定義される必要があります

単純にメッセージどおり。 public static class BaseExtensi

記事を読む

no image

【WPF/XAML】Visibility変更時のアニメーション切替

ストーリーボードを使わずに、Visibility変更でアニメーションを発生させたかった。 やってる

記事を読む

Visual Studio Team Services ダッシュボードを自動更新する

Visual Studio Team Services のダッシュボードでプロジェクトや運用状況のサ

記事を読む

no image

UWPでMicrosoft.OData.Clientを使用する時、LINQ式でエラー

UWPからは非同期メソッドを実行する必要があるので、通常はExecuteAsyncをコールするが、

記事を読む

Visual Studio から Android SDK Managerが起動できない

Android SDKやエミュレーターイメージのアップデートを行いたい場合にAndroid SDK

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑