gpt4 book ai didi

c# - BringIntoView 方法

转载 作者:太空狗 更新时间:2023-10-29 21:14:10 25 4
gpt4 key购买 nike

在 WPF 中,我有一个带有 7 个不同组框的滚动查看器。每个组框都是它自己的不同形式的单独部分。由于滚动查看器太长,我在面板左侧的堆栈面板中放置了一系列按钮,并完成了代码隐藏,以便单击按钮触发相应组框的 BringIntoView 方法。

我的问题是,有没有办法强制 BringIntoView 每次都将组框定位在可见部分的顶部。默认情况下,BringIntoView 只会移动滚动查看器,直到整个组框都在 View 中,而不是让它成为最上面显示的项目。有解决办法吗?

我研究了使用 ScrollToVerticalOffset,但无法弄清楚如何获得正确的位置,主要是因为它说 groupbox 没有 Locate 属性,我打算使用它来获取位置,然后使用 ScrollToVerticalOffset 设置它。键入此内容时我想到的一件事是让每个按钮都先按到顶部组框,然后立即继续到正确的那个,但这似乎有点 hack-ish,我更喜欢找到正确的方法。 :)

最佳答案

试试这个:

private void ScrollToGroupBox(GroupBox groupBox)
{
GeneralTransform groupBoxTransform = groupBox.TransformToAncestor(scrollViewer);
Rect rectangle = groupBoxTransform.TransformBounds(new Rect(new Point(0, 0), groupBox.RenderSize));
scrollViewer.ScrollToVerticalOffset(rectangle.Top + scrollViewer.VerticalOffset);
}

代码获取您的 GroupBox 在 Scrollviewer 中的位置并滚动到它。

关于c# - BringIntoView 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com