如何同步两个滚动查看器

发布于 2024-11-14 06:54:32 字数 558 浏览 4 评论 0原文

我有一个自定义 WPF 控件,用于使用 ItemsControl 显示项目列表。 ItemsPresenter 在模板中定义以显示列表,并嵌入 ScrollViewer 中以实现滚动目的:

<ControlTemplate TargetType="ItemsControl">
  <Grid x:Name="LayoutRoot">
    <ScrollViewer Margin="3">
       <ItemsPresenter/>
    </ScrollViewer>
  </Grid>
</ControlTemplate>

我的应用程序创建自定义控件的两个实例以并排显示列表。

我想要的是,当用户在第一个控件上选择一个项目时,第二个控件会自动滚动,以便相同的项目显示在相对于顶部的相同位置。为了实现这一点,我需要知道

  1. 如何获取第一个控件中所选项目的位置(以像素为单位)?
  2. 如何滚动到第二个控件中的相同位置?

还有其他方法可以做到这一点吗?

I have a custom WPF control to display a list of items using an ItemsControl. The ItemsPresenter is defined in the template to display the list and it is embedded inside a ScrollViewer for scrolling purposes:

<ControlTemplate TargetType="ItemsControl">
  <Grid x:Name="LayoutRoot">
    <ScrollViewer Margin="3">
       <ItemsPresenter/>
    </ScrollViewer>
  </Grid>
</ControlTemplate>

My application creates two instances of the custom control to show the list side by side.

What I want is when user selects an item on the first one, the second control automatically scrolls so that the same item is displayed in the same position relative to the top. To accomplish this I need to know

  1. How to get the position (in pixels) of the selected item in the first control?
  2. How to scroll to the same position in the second control?

Are there any other ways to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文