簡體   English   中英

WPF中的控件布局幫助

[英]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.Horizo​​ntalScrollBarVisibility屬性手動將其禁用:

    <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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM