- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 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/
我在事件处理程序后面有这段代码: private void comboActiveStudentAssignmentType_SelectionChanged(object sender, Selec
在 WPF 中,我有一个带有 7 个不同组框的滚动查看器。每个组框都是它自己的不同形式的单独部分。由于滚动查看器太长,我在面板左侧的堆栈面板中放置了一系列按钮,并完成了代码隐藏,以便单击按钮触发相应组
在我的 MVVM 应用程序中,我有一个树 View ,应该在选择时将树 View 项带入 View 。树 View 表示数据库中的记录。每个树 View 项通过在选择时展开项来按需加载其子项。 树 V
背景:我在 ScrollViewer 中定义了一个 usercontrol 以及一个 ContentControl,ContentControl 将始终可见,其中有一个Button,当点击按钮时会将u
我想加载大的 .rtf 文件并滚动到其中的特定段落。 所以我做了这样的事情: private FlowDocument GenerateDocument(string path) {
当您在 WPF 中的 TreeView 上设置 VirtualizingStackPanel.IsVirtualizing="True" 时: 调用 Tree
我希望用户能够在 TreeView 中搜索项目。输入搜索文本后,TreeViewItem 应滚动到 View 中。 现在我正在为 TreeView、TreeViewItems 和 MainView 使
我是一名优秀的程序员,十分优秀!