xamlでToolTipの改行をする場合はLineBreakを使います。
<Button> <Button.ToolTip> <TextBlock> test。<LineBreak/> test。<LineBreak/> test </TextBlock> </Button.ToolTip> </Button>
C#のコードから設定する場合は\nでいいみたいです。
Button btn = なんたら; btn.ToolTip = "test。\ntest。\ntest";
ついでに、ToolTipの表示時間は各コントロールのToolTipService.ShowDurationで設定します。
<Button ToolTipService.ShowDuration="50000"/>
単位はミリ秒、既定値は5000ミリ秒(5秒)です。 ToolTipのテキスト量で自動で変わるとかっていうんだったら楽だったんですけどね。 現状は長いToolTipを付けてしまったら自前で表示時間を設定しなければなりません。
=======
2013/05/19 追記) 幅の上限を設定して自動で折り返す方法を投稿しました。