텍스트 항목 목록이 그려지는 채팅 창과 비슷한 창을 표시하려고합니다. 창의 크기를 조정할 수 있어야하고 한 줄에 들어 가지 않으면 각 텍스트 항목이 줄 바꿈되어야합니다.강제로 ListView의 너비를 제한하여 자식 텍스트를 강제로 바꿈
내가 지금까지 가지고 :
MessageItem
- 사용자 제어, 여러 TextBlock이를 국경
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Border BorderBrush="Silver" BorderThickness="1" Height="Auto" HorizontalAlignment="Left" Margin="0,10,0,10" Name="messageContainer" VerticalAlignment="Top" Width="Auto">
<TextBlock Height="Auto" HorizontalAlignment="Stretch" Margin="0" Name="messageContent" VerticalAlignment="Stretch" Width="Auto" Text="This is some longer text. Wow that wasn't as long as I thought." TextWrapping="Wrap" Padding="10" />
</Border>
</Grid>
MessageBox
에 - MessageItems
<Grid Name="messageGrid" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<!--<StackPanel Height="Auto" HorizontalAlignment="Stretch" Margin="0" Name="messagePanel" VerticalAlignment="Stretch" Width="Auto">
</StackPanel> -->
<ListView HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<local:MessageItem></local:MessageItem>
</ListView>
</ScrollViewer>
</Grid>
을 보유하고 ListView에있는 사용자 제어 문제 :
내가 e는 MessageItem을 보유하기 위해 StackPanel을 주석 처리했습니다. MessageItem을 축소하여 텍스트가 올바르게 줄 바꿈합니다. ListView를 사용하면 축소되지 않습니다.
나는 연구에서 왜 그럴지를 알았지 만 주변을 둘러 볼 방법을 찾아 내지 못했습니다. 지금까지 내가 MeasureOverride 및/또는 ArrangeOverride를 재정의해야한다고 말할 수는 있지만 WPF에서 내가하고있는 WTF를 알기에는 너무 새롭다. (rimshot)
와우를 사용하여 더 나을 것입니다. ScrollViewer : Resize 윈도우는 ListView가 윈도우보다 큽니다. -> "스크롤 막대가 보이지 않습니다."-> Toolbox -> ScrolViewer -> "그게 내가 필요한 것입니다!" :) 내가 WPF에 익숙하다고 말했다 : P – carpat