テキストボックスに内容をラップする方法を理解しようとしていますが、状況は「ラップしない」というシナリオとはまったく同じではありません。私のテキストボックスには、(表示するビューを決定するためにContentTemplatePresenterを使用して)Telerik RadTabControlインスタンス内で使用されたDataTemplateの内部に収容されているとのDataTemplateのためのXAMLは次のようになります。WPF TextBox Wrapping
<DataTemplate x:Key="NotesTemplate">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Text="Use the box below to record any general notes associated with this item." Style="{StaticResource Default}" />
<TextBox TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" GridRow="1" Margin="20" Text="{Binding Notes, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</DataTemplate>
私はそれはdoesnの言う理由通常の "それはラップしない"シナリオでは、アプリケーションが実行されるさまざまな画面サイズをサポートするために、サイズを変更できるようにビューを変更するまで、ラップするのに使用されます。私が行ったとき、TextBoxはラップを停止しました。なぜなら、ユーザーがTextBoxに「私はより多くのスペースが必要です」というメッセージが表示されているからです(つまり、ビューにはスクロールバーが表示されますが)。私はBinding/RelativeSourceを使ってMaxWidthを設定しようとしましたが、親はそのアプローチを成長させるために特別に設計されているので動作しません。私は何が起こる必要があるボックスは、ボックスがその 'の親を含む'の幅でなければならないVisibleWidth。つまり、Window自体が1024x768の場合、TextBoxのMaxWidthは1024になり、それ以降のテキストは自動的に折り返されますが、Windowが1280x1024に拡大すると、ボックスは1280になり、それに応じてテキストが折り返されます。私はこのバインディング式でこのシナリオではなく、運を試してみました:
MaxWidth="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}, Path=ActualWidth}"
私がしているタブの幅をカバーするためにウィンドウの幅(マイナス一定量を得ることができれば、それ自体はそれほど高まっていないウィンドウのサイズTabControlの一部)私はそれが動作すると信じています。
アイデア?
別のSOの質問で最良の結果を見つけました:http://stackoverflow.com/questions/386039/wpf-textbox-and-scroll-behavior – RubyHaus