WPF如何使控制始终在最前面,并留在查看用户向下滚动后

我建立使用WPF,这样的垂直应用时间表: WPF如何使控制始终在最前面,并留在查看用户向下滚动后

该应用程序分为2个边,上左边是圆圈的日期,右边是细节。

让我们说在我的屏幕上,我只能看到左边的两个圆圈,右边是一些非常长的细节。我想要实现的是,当我向下滚动时,第一个圆圈在屏幕上移动,然后卡在顶部,而不是离开我的视野。

这就像电报在Android上,发件人的显示画面将永远在最前面,无论用户向上或向下滚动,直到下一个发件人的显示画面的用武之地。

我希望我能解释自己清晰。我已经设法在WPF中创建应用程序,现在我想要做上述增强,但我不知道从哪里开始。

编辑: 这里有两张图片来解释我想达到什么。

之前向下滚动

向下滚动

回答:

,我能想到的是使用一个HeaderedItemsControl非常简单的解决方案后。这将允许您将顶部项目设置为标题,将所有其他项目设置为列表项目。

<Grid> 

<HeaderedItemsControl>

<HeaderedItemsControl.Template>

<ControlTemplate TargetType="{x:Type HeaderedItemsControl}">

<Border>

<Grid>

<Grid.RowDefinitions>

<RowDefinition Height="Auto" />

<RowDefinition Height="Auto" />

<RowDefinition />

</Grid.RowDefinitions>

<ContentPresenter ContentSource="Header" />

<!--<Separator Grid.Row="1" />-->

<ScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Visible">

<ItemsPresenter />

</ScrollViewer>

</Grid>

</Border>

</ControlTemplate>

</HeaderedItemsControl.Template>

<HeaderedItemsControl.Header>Mark</HeaderedItemsControl.Header>

<HeaderedItemsControl.Items>

<system:String>Mark2</system:String>

<system:String>Mark3</system:String>

<system:String>Mark4</system:String>

<system:String>Mark5</system:String>

<system:String>Mark6</system:String>

<system:String>Mark7</system:String>

<system:String>Mark7</system:String>

</HeaderedItemsControl.Items>

</HeaderedItemsControl>

</Grid>

以上是 WPF如何使控制始终在最前面,并留在查看用户向下滚动后 的全部内容, 来源链接: utcz.com/qa/263970.html

回到顶部