我在4行2列網格內有以下XAML。 Grid.ColumnDefinitions將ColumnDefinition Width的值設置爲*。如何讓TextBlock包裝或滾動FlowDocumentScrollViewer
<FlowDocumentScrollViewer Style="{StaticResource myFlowDoc}"
Grid.Row="4"
Grid.Column="1" >
<FlowDocument >
<Paragraph LineHeight="12" >
<ItemsControl ItemsSource="{Binding ReceivedData, Mode=OneWay}" />
<TextBlock TextWrapping="Wrap" Text="{Binding /, Mode=OneWay}" />
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
數據來自一個ObservaleCollection <字符串>和看起來很好和垂直滾動正確。但是,如果某個項目不能在TextBlock中水平放置,則文本塊將不會換行,並且FlowDocumentScrollViewer將不會顯示滾動條。查看文本的唯一方法是水平放大窗口。有誰知道我在做什麼錯了,爲什麼TextWrapping設置沒有兌現?
如果在這裏重要的是風格myFlowDoc
<Style x:Key="myFlowDoc">
<Setter Property="Control.Padding"
Value="0" />
<Setter Property="FlowDocumentScrollViewer.IsToolBarVisible"
Value="True" />
<Setter Property="Control.MinHeight"
Value="150" />
<Setter Property="Control.BorderBrush"
Value="SteelBlue" />
<Setter Property="Control.BorderThickness"
Value="2" />
<Setter Property="Control.VerticalAlignment"
Value="Stretch" />
</Style>
[編輯1] 這裏是全屏,應該換一個錯誤消息。在這張圖片下面,我有一個只顯示窗口更寬的消息詳細區域,所以你可以看到整個消息。我也把整個xaml的用戶控制在https://gist.github.com/1036178#
[編輯2.1] @納維德的建議讓我間接地得到了答案。刪除「/」並將數據包裝到數據模板中似乎有用。這裏是新的XAML
<DataTemplate x:Key="StringCollection">
<TextBlock TextWrapping="Wrap" Text="{Binding}" TextAlignment="Left"/>
</DataTemplate>
<!--... now down in the ItemsControl-->
<ItemsControl ItemsSource="{Binding ReceivedData, Mode=OneWay}"
ItemTemplate="{StaticResource StringCollection}" />
我看不出任何問題,可以發送截圖? –
我不知道什麼是最好的方式來感覺屏幕截圖,所以我只是編輯原始帖子,我有一個窗口在「正常」寬度的一個鏡頭,然後一個只是我已經做了詳細信息區域窗口足夠寬,以便您可以看到整個消息。我也建立了一個鏈接到完整的xaml文件。 – Tod
你會描述嗎? ' –