针对旧的基于XAML的UI框架(WPF/SL)有解决此问题的方案,但它们难以适用于通用Windows平台。
我正试图创建一个项目列表,在默认状态下仅显示有限详情,并在选择时展开以快速编辑一些数据。
我没有找到一种方法来创建该扩展行为,尽管它类似于Windows 10邮件应用程序中会话的展开行为。当会话中的消息被选择时,该会话的其他消息会下滑或滑动。
以下是一个示例列表,在其中我想先仅显示名称。
<ListBox ItemsSource="{x:Bind Persons}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate x:DataType="src:Person">
<StackPanel HorizontalAlignment="Stretch" Width="Auto">
<TextBlock Text="{x:Bind Path=Name, Mode=OneWay}" Margin="12, 15, 12, 0" FontSize="18.667" />
<TextBox HorizontalAlignment="Stretch" Margin="12, 12, 12, 0" FontSize="18.667" Text="{x:Bind Path=Name, Mode=TwoWay}" />
<TextBlock Text="Date of birth" Margin="12, 15, 12, 0" />
<DatePicker Margin="12, 5, 12, 0" Date="{x:Bind Path=DateOfBirth, Mode=TwoWay}" />
<TextBlock Text="Domicile" Margin="12, 15, 12, 0" />
<TextBox Margin="12, 5, 12, 0" Text="{x:Bind Path=Domicile, Mode=OneWay}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
在WPF中,这种行为可以通过触发器
Style.Triggers
来实现,但它们现在不再可用。GitHub上的原始源代码:GitHub