내부에 제대로 손질하지 않는 TextBlock의 's를 옵니다의 크기가 작은 becames 때.텍스트는이 코드의 텍스트를 잘라하지 않습니다,리스트 박스
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" TextTrimming="CharacterEllipsis"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
옵니다는 HorizontalScrollBar
보여줍니다 - 즉 TextBlock의을위한 공간이 충분히 큰 텍스트 트리밍의 필요가 없습니다. 다음 코드 줄을 사용하여 해결할 수 있습니다.
<ListBox ...
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
... />
이제 텍스트가 잘립니다. 그러나 전체 텍스트를 다듬을 때까지 ... 만 남았 으면 좋겠습니까? 예를 들어, TextBlock 속성의 MinWidth
을 설정했으며 ListBox의 너비가 MinWidth
보다 작 으면 HorizontalScrollBar
becames를 표시하려고합니다.
나는 SizeChanged
이벤트를 처리하려고 시도했으며 조건에 따라 ScrollViewer.HorizontalScrollBarVisibility
첨부 속성을 설정합니다. 그러나 텍스트 becames는 내가 후자를 Disabled
에서 Visible
으로 바꿀 때만 다듬어지지 않습니다. 그래서 어떻게 든 점프합니다 .- 잘린 것에서부터 가장 좋은 UI 연습이 아닙니다.
Q : 그렇다면 위에서 설명한 동작을 어떻게 유지할 수 있습니까?
이것은 내가 원하는 것을 정말로했다! 그러나 나는 ** 8 **이 무엇을 알아낼 수 없는지 알 수 없다. 마진, 경계선, 또는 그 밖의 것이 있습니까? 올바른 해결책의 핵심은 퍼지 (fudge) 용어를 정확하게 계산하는 것입니다. – stukselbax
네, ListBox의 BorderThickness와 ListBoxItem의 Padding의 조합입니다. 'BorderThickness'에 대한 설명의 필요성을 제거 할'ScrollContentPresenter'에 바인드하도록 향상시킬 수 있습니다. –
대단히 고마워! – stukselbax