0

このグリッドの高さは調整可能であり、ステータス3は常に表示され、ステータス2は常にステータス1のすぐ下に表示されるというルールを維持しながら、ステータス1のテキストを切り捨てることができる必要があります。運が悪かったので、ステータス2のVerticalAlignmentをtopに設定してこれを達成しようとしました。

たとえば、高さを78から178に変更すると、ステータス2がステータス1の隣に表示されなくなります。

<Grid Height="78"
      Width="167">

<Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Border x:Name="_itemBorder"
        Grid.RowSpan="3"
        Background="LightBlue" />

<TextBlock x:Name="_statusOneTextBlock"
           Grid.Row="0"
           Margin="5"
           Text="STATUS 1 Very long status one text"
           TextWrapping="Wrap"
           TextTrimming="CharacterEllipsis" />

<TextBlock x:Name="_statusTwoTextBlock"
           Grid.Row="1"
           Margin="5"
           Text="STATUS 2"
           VerticalAlignment="Top"
           TextTrimming="CharacterEllipsis" />

<TextBlock x:Name="_statusThreeTextBlock"
           Grid.Row="3"
           Margin="5"
           Text="STATUS 3"
           VerticalAlignment="Bottom"
           TextTrimming="CharacterEllipsis" />
</Grid> 
4

2 に答える 2

0
<Grid Height="178" 
  Width="167">

    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />

    </Grid.RowDefinitions>

    <Border x:Name="_itemBorder" 
    Grid.RowSpan="3" 
    Background="LightBlue" />

    <TextBlock x:Name="_statusOneTextBlock" 
       Grid.Row="0" 
       Margin="5" 
       Text="STATUS 1 Very long status one text" 
       TextWrapping="NoWrap" 
       TextTrimming="CharacterEllipsis" />

    <TextBlock x:Name="_statusTwoTextBlock" 
       Grid.Row="1" 
       Margin="5" 
       Text="STATUS 2" 
       VerticalAlignment="Top" 
       TextTrimming="CharacterEllipsis" />

    <TextBlock x:Name="_statusThreeTextBlock" 
       Grid.Row="2" 
       Margin="5" 
       Text="STATUS 3" 
       VerticalAlignment="Bottom" 
       TextTrimming="CharacterEllipsis" />
</Grid>
于 2012-08-30T02:56:39.380 に答える
0

TextBlock内でのInlineUIContainerの使用を修正しました。

<Grid Height="68"
      Width="167">

<Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="23" />
</Grid.RowDefinitions>

<Border x:Name="_itemBorder"
        Grid.RowSpan="2"
        Background="LightBlue" />

<TextBlock Grid.Row="0">
<TextBlock x:Name="_statusOneTextBlock"
           Text="STATUS 1 Very long status one text"
           TextWrapping="Wrap"
           TextTrimming="CharacterEllipsis" />
<LineBreak />
<InlineUIContainer>
    <TextBlock x:Name="_statusTwoTextBlock"
               Text="STATUS 2"
               VerticalAlignment="Top"
               TextTrimming="CharacterEllipsis" />
</InlineUIContainer>
</TextBlock>

<TextBlock x:Name="_statusThreeTextBlock"
           Grid.Row="1"
           Text="STATUS 3"
           VerticalAlignment="Bottom"
           TextTrimming="CharacterEllipsis" />
</Grid>
于 2012-08-30T21:50:02.977 に答える