【发布时间】:2017-02-04 21:13:31
【问题描述】:
我正在创建一个简单的应用程序,在其中我在运行时实例化自定义类的元素(该类由一些控制元素组成:文本块、网格)。由于我的工作区域很容易人满为患,我希望我的应用程序的主网格可滚动。
我将我的 Grid 封装在一个 Scroll Viewer 中,我打算以这种方式增加 Grid 的宽度和高度,使水平和垂直滚动条出现。然而,我的问题是,我不知道如何检查我的自定义类的实例是否完全在工作区域内,或者它的一部分延伸到工作区域之外。我在 SO 中找到了一种可以解决我的问题HERE 的方法,但是因为我有很多元素,所以我必须检查其中的每一个。是否有另一种方法可以轻松提高性能?
另外,我必须知道我的元素在多大程度上超出了该区域,因此我只相应地增加了网格的大小。我是 WPF 新手,非常感谢任何建议!
<ScrollViewer VerticalScrollBarVisibility="Visible"
HorizontalScrollBarVisibility="Auto"
CanContentScroll="True">
<Grid
x:Name="MainGrid"
Background="Transparent"
MouseLeftButtonUp="grid_MouseLeftButtonUp">
<ItemsControl>
<!--HERE I HAVE A NUMBER OF OTHER ELEMENTS PREDEFINED-->
</ItemsControl>
<Grid.ContextMenu>
<!--HERE I HAVE CONTEXTMENU ELEMENTS-->
</Grid.ContextMenu>
</Grid>
</ScrollViewer>
【问题讨论】:
标签: wpf scrollviewer