[英]Controls Layout Help in WPF
我的布局有問題
<ListBox Name="Tweets" Grid.Row="1" ItemsSource="{Binding Path=Tweets}" Background="#1F0000FE">
<ListBox.ItemTemplate>
<DataTemplate>
<local:TweetTemplate Margin="10"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
這是我的模板:
<Grid Name="grid">
<Grid.RowDefinitions>
<RowDefinition Height="25*" />
<RowDefinition Height="95*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="110" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Source="{Binding Path=FromImage}" Grid.RowSpan="2" Margin="7" />
<TextBlock Text="{Binding Path=From}" Margin="5" Grid.Column="1" />
<TextBlock Text="{Binding Path=Text}" TextWrapping="WrapWithOverflow" Grid.Row="1" Margin="7" Grid.Column="1" />
</Grid>
我的問題是,當<TextBlock Text="{Binding Path=Text}"
文本很長時,它會拉伸網格。 然后伸展父控件。 我希望該文本不拉伸列表框,並且當其達到列表框寬度的末尾時,切換到新行。 並調整窗口大小時,應增加ListBox的大小。 這意味着要使用所有窗口。
ListBox創建用於顯示項目的ScrollViewer,因此應使用ScrollViewer.HorizontalScrollBarVisibility屬性手動將其禁用:
<ListBox Name="Tweets"
Grid.Row="1"
ItemsSource="{Binding Path=Tweets}"
Background="#1F0000FE"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
...
</ListBox>
你應該能夠將設置MaxWidth
的文本塊,並設置TextWrapping="Wrap"
。 那應該為您提供期望的結果。 在您的列表框中,您還可以說HorizontalContentAlignment="Stretch"
以便您的模板化項目拉伸到itemsControl的內部限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.