簡體   English   中英

Textblock.TextTrimming在網格內不起作用

[英]Textblock.TextTrimming not working inside a grid

我的布局有一個3列網格,每個網格寬度設置為Width="*" 對於中間(第二)網格,我有另外3列網格,每個網格包含它自己的文本塊,並且列網格寬度再次設置為Width="*"

調整窗口大小時,網格會按預期調整大小,但如果文本超出網格邊界,則第3個文本塊不會被修剪。 我有文本框設置TextTrimming="WordEllipsis"TextWrapping="Wrap" ,並且由於某種原因沒有強制執行屬性。

這是我的一些代碼:

布局網格:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition MinWidth="150" MaxWidth="300" Width="1*" />
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition MinWidth="150" MaxWidth="500" Width="1*" />
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="2*"/>
    </Grid.ColumnDefinitions>
</Grid>

第二列代碼:

<Grid Grid.Column="2" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="5" Width="Auto">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>

    <TextBlock Text="{Binding Path=FeedItems.Count}" Foreground="White" FontSize="18" Width="Auto" FontWeight="SemiBold" />
    <TextBlock Text=" items from " Foreground="White" FontSize="18" Width="Auto" Grid.Column="1" />
    <TextBlock Text="{Binding Path=Name}" Foreground="White" FontSize="18" Grid.Column="2" TextTrimming="CharacterEllipsis" HorizontalAlignment="Left" Width="Auto" TextWrapping="NoWrap" ClipToBounds="True" />
</Grid>

為了使其工作,您需要第二個網格中的最后一列具有*大小,否則它將告訴TextBlock它具有所需的空間,即使它沒有。 自動調整大小的列不會將內容限制為網格的邊界。 但是,如果使用單個TextBlock和多個運行執行此操作,您可能會獲得更好的結果:

<TextBlock FontSize="18" TextTrimming="CharacterEllipsis">
    <Run Text="{Binding Path=FeedItems.Count}" FontWeight="SemiBold" />
    <Run Text=" items from " />
    <Run Text="{Binding Path=Name}" />
</TextBlock>

請注意,您只能在.NET 4.0中綁定Run.Text。 如果您在使用框架的舊版本,你必須創建自己的BindableRun,因為看到這是非常簡單的在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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