2016-09-06 16 views
1

何が間違っていますか?WPF ScrollViewとTextBlock

次のコードは動作します:

<ScrollViewer x:Name="scrollChatMessages"> 
    <TextBlock x:Name="txtChatMessages" TextWrapping="Wrap"/> 
</ScrollViewer> 

しかし、それは滑らかな印象に見え、全体のグリッドを引き継ぐないように、私はデザイナーでそれを触ったら、ScrollViewはScrollblockの内容をスクロールしませんもう一度:

<ScrollViewer x:Name="scrollChatMessages" HorizontalAlignment="Left" Height="181" Margin="95,10,0,0" VerticalAlignment="Top" Width="300"> 
    <TextBlock x:Name="txtChatMessages" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Height="181" Width="300"/> 
</ScrollViewer> 

誰かがこの現象を私に説明できますか?

ありがとうございます!

+0

あなたの問題を解決しません – Sajeetharan

+0

@Sajeetharan最初のコードでは、ScrollViewはスクロールすることができますので、TextBlockから見えなくなったものはすべてスクロールして見ることができます。 2番目のコードでは、すべてが私が望むところに置かれますが、スクロールバーはもうTextBlockに対応していません。 – Nathan

答えて

1

いいえMinimal, Complete, and Verifiable code example確かに言うことは不可能です。しかし、デザイナーは両方の要素に新しいプロパティ値を追加していることがわかります。特に、ScrollViewerTextBlockは、正確な幅と高さが同じに設定されています。

当然のことながら、含まれている要素が正確にはScrollViewerに収まるような寸法であれば、それをすべて見るためにスクロールする必要はありません。 TextBlockからWidthHeightのプロパティ値を削除する必要があります。

+0

今、私のソリューションがなぜ機能するのかをよりよく理解しています。どうもありがとうございました!私のソリューションは機能しますが、あなたの答えは私にもっと広範な知識をもたらしますので、私はあなたのソリューションを答えにします。 :-) – Nathan

1

グリッドの内側に配置して解決しました。

<Grid x:Name="gridChatMessages" HorizontalAlignment="Left" Height="181" Margin="95,10,0,0" VerticalAlignment="Top" Width="300"> 
    <ScrollViewer x:Name="scrollChatMessages"> 
     <TextBlock x:Name="txtChatMessages" TextWrapping="Wrap"/> 
    </ScrollViewer> 
</Grid> 
関連する問題