2 列 2 行のグリッドがあります。1 文字 (Unicode U+2699) が右下のグリッド フィールド内に配置されました。次のようになります。
文字が配置されているグリッド フィールドに合わせてフォント サイズを自動的に調整するようにしたい (この場合は、2 番目のグリッド行の高さにバインドする必要がありますが、場合によっては、グリッドの高さまたは幅が小さい場合、これら 2 つの値の最小値にバインドする方法を知っておくとよいでしょう)。
これまでの私の実装は次のようなものです (この例では少し簡略化しています)。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition x:Name="heightToBind" Height="40"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="14*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button FontSize="{Binding ElementName=heightToBind, Path=Height.Value, Mode=OneWay}" Content="⚙" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Right" />
</Grid>
ここでの問題は、高さがRowDefinitions 内の固定値である場合にのみ機能することです。次の定義で動作するようにします。
<Grid.RowDefinitions>
<RowDefinition Height="4*"/>
<RowDefinition x:Name="heightToBind" Height="*"/>
</Grid.RowDefinitions>
おまけの質問として、キャラクターの配置が低すぎて下部が切り取られている理由にも興味があります(VerticalAlignment="Center"
ボタンを試してみましたが、効果がありませんでした)。