使用UWP,我有一个显示数据行的网格,一列数据可以包含TextBlock中的一些大量文本。我想将行定义高度限制为80(MaxHeight),所以它看起来都是均匀的(ish),但如果其中一个TextBlocks中有大量文本,我想显示一个“展开”按钮,删除该行高度限制,因此可以在TextBlock中看到所有文本。
这可能吗?什么是最好的方法,我看过VisualStateManagers,触发器(他们在UWP中的哪个位置!?)和用户控件 - 任何想法?
以下XAML用于使用DataTemplate显示网格中的数据:
<DataTemplate x:Key="ListItem">
<Grid HorizontalAlignment="Stretch" Opacity="{Binding Master, Converter={StaticResource BooleanToOpacity}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="28" />
<ColumnDefinition MaxWidth="100" />
<ColumnDefinition MaxWidth="100" />
<ColumnDefinition />
<ColumnDefinition MaxWidth="100" />
<ColumnDefinition MaxWidth="100" />
<ColumnDefinition MaxWidth="100" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MaxHeight="200" />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Text="" FontSize="16" Padding="2" Style="{StaticResource IconTextBlock}" Foreground="{ThemeResource SystemControlForegroundAccentBrush}" />
<TextBlock Grid.Column="1" Text="{Binding Code}" Style="{StaticResource ListViewTextBlock}" />
<TextBlock Grid.Column="2" Text="{Binding Ref1}" Style="{StaticResource ListViewTextBlock}" />
<TextBlock Grid.Column="3" Text="{Binding Description}" Style="{StaticResource ListViewTextBlock}" TextWrapping="Wrap" MaxHeight="84" x:Name="tbDescription" />
<TextBlock Grid.Column="4" Text="{Binding State}" Style="{StaticResource ListViewTextBlock}" />
<TextBlock Grid.Column="5" Text="{Binding SubType}" Style="{StaticResource ListViewTextBlock}" />
<TextBlock Grid.Column="6" Text="{Binding Category}" Style="{StaticResource ListViewTextBlock}" />
</Grid>
</DataTemplate>
这是描述TextBlock,我想让用户“扩展”。