次の方法で共有


動的にテキストのサイズを変更

質問

2008年6月24日火曜日 2:08

テキストのサイズについて質問です。

テキストエリアのサイズは固定ままで、
テキストの文字数が増えた場合でも、全てのテキストが収まるようなものを
XAMLで作ろうとしています。

TextBlockを使った場合、TextBlockからはみ出た文字は
表示されなくなるか、文字のおしりに「...」がつきますよね。
そうではなく、はみ出た文字もTextBlockに収まるよう、動的にテキストのサイズを変更したいのです。

レイアウトパネルを組み合わせたものでも構わないのですが、
そのようなものはXAMLだけで作成可能でしょうか?

開発環境は ExpressionBlend2 です。

すべての返信 (5)

2008年6月24日火曜日 5:31 ✅回答済み

ViewBoxにTextBlockを入れてください。

Code Snippet

  <Viewbox HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="152" Height="32">
   <TextBlock Text="TextBlockaaaaaaaaaaaaaaaaa" TextWrapping="Wrap"/>
  </Viewbox>

 

 


2008年7月1日火曜日 12:28 ✅回答済み

StretchDirection="DownOnly" です。

 

ViewBox を教わったら少なくとも ViewBox の HELP をまず探しましょう。

HELP をみたり 検索したりしないと成長しませんよ。


2008年6月24日火曜日 6:07

できましたーーー!
素早い回答ありがとうございました

#ViewBox初めて使いました。


2008年7月1日火曜日 1:21

上記の方法で制作しているのですが、1つ困ったことがあります。

テキストのWidthがViewBoxの幅より小さくなった時は、
テキストが横に伸びるようになってしまいました。

ViewBoxの幅より"大きく"なった時は、ViewBoxの幅に合わせて縮み、
ViewBoxの幅より"小さく"なった時は、本来のテキストのサイズになる、
というものを作りたいのですが、
XAMLでこのような動作をさせるにはどうすればよいでしょうか?

よろしくお願いします。


2008年7月1日火曜日 14:33

ご回答ありがとうございます。
StretchDirection="DownOnly" でうまくいきました。

もっと複雑なことをしなきゃいけないと思っていたので、ViewBoxを調べ尽くしてなかったです。
.NET Framework Developer Centerで調べると「StretchDirection」の説明がありました。
http://msdn.microsoft.com/ja-jp/library/system.windows.controls.viewbox_properties%28VS.80%29.aspx
まずは、ここを見て勉強します。

今後も初歩的な質問をするかもしれませんが、ご教授よろしくお願いします。