2017-03-11 14 views
0

私は問題に直面し、ここで解決策を見つけるためにインターネットとスレッドを試しましたが、まだ見つかりませんでした。 私はプログラミングの初心者であり、どんな助けにも感謝します。WPF計算されたFontSize ViewBox内

私はセカンダリ画面に表示されるウィンドウと、ビューボックスにラップされたTextBlockを持っており、テキストはバインドされており、実行時に2番目の画面に表示されます。フォントサイズもBindedで、ユーザーが変更できます。

これは完璧に機能しています。 問題は、ユーザーがフォントサイズを大きくするとテキストが短くても見栄えが良くなりますが、テキストが非常に大きい場合は見た目が醜いことがあります。

私はViewBoxのSretchの方向とストレッチを試しましたが、問題を解決するためのより良い方法は見つけられませんでしたが、非常に長いテキストがあり、テキストが読めない場合は手作業で手作業で読むことができます。

どうすれば助けられますか?私が念頭に置いている一つの解決策は、親グリッドの高さと幅のfontsizeを計算することです。その結果、テキストが非常に長い場合、計算が読み込み可能になるまでフォントサイズが減少します。ここ

は私のサンプルのXAMLは、私は問題の周りの仕事を見つけ

<Grid> 
    <Viewbox Stretch="Fill" 
      StretchDirection="DownOnly"> 
     <TextBlock Text="{Binding}" 
        Width="{Binding}" 
        FontSize="{Binding}" 
        TextWrapping="Wrap"> 

     </TextBlock> 
    </Viewbox> 
</Grid> 

Here is the Ugly Behavior when text is very long and fontsize is set highly

Expected behavior. Here the fontsize is manually set lower

+0

に手動で設定'System.Windows.Media.FormattedText'クラスで行うことができる' FontSize'に基づいて 'Width'を計算してください。 – AnjumSKhan

+0

お返事ありがとうございます。試してみる – Gnyasha

答えて

0

大丈夫です。誰かが別の解決策を持っているなら、それは歓迎されるでしょう。

私はあなたが最小/最大サイズに対処する必要があり、またかもしれない国境内のTextBlockを包み、テキストブロックの幅の結合を取り除き、1200

<Grid> 
<Viewbox > 
    <Border> 
    <TextBlock Text="{Binding}" 
       Width="{1200}" 
       FontSize="{Binding}" 
       TextWrapping="Wrap"> 

    </TextBlock> 
    </Border> 
</Viewbox> 

関連する問題