检测滚动条属于哪个元素
我有一个比较复杂的布局。它由以下部分组成: 一列三行的网格。 在第一行(给我麻烦)我有一个开发人员快速组件 - 另一个GridControl。检测滚动条属于哪个元素
我的问题是,虽然第一行的高度是自动,纵向滚动条显示,即使有足够的空间用于内容。
我试过在行的rowdefinition上设置ScrollViewer.VerticalScrollBarVisibility =“Hidden”,但这没有帮助。
同样,我已经设置内GridControl不使用滚动条(使用某些Developer速成魔法 - 不仅仅是因为ScrollViewer中这不工作)
然而,无论我做什么,在出现该死的滚动条...有什么办法来找出哪个控件呈现它,所以我可以禁用该死的东西?这不仅仅是一个丑陋的问题 - 滚动它实际上与布局混乱!
在此先感谢!
相关的代码:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" />
<RowDefinition Height="*" MaxHeight="240" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<dxg:GridControl Name="StudySizeGrid" Grid.Column="0" Grid.Row="0" >
<dxg:GridControl.Resources>
<ControlTemplate x:Key="{dxgt:TableViewThemeKey ResourceKey=ControlTemplate}">
<ScrollViewer x:Name="scr"
VerticalScrollBarVisibility="Disabled"
HorizontalScrollBarVisibility="Disabled"
Focusable="False"
dxg:GridControl.CurrentView="{Binding RelativeSource={RelativeSource TemplatedParent}}"
Template="{DynamicResource {dxgt:TableViewThemeKey ResourceKey=ScrollViewerTemplate}}">
<ScrollViewer.CanContentScroll>False</ScrollViewer.CanContentScroll>
</ScrollViewer>
</ControlTemplate>
</dxg:GridControl.Resources>
...
</dxg:GridControl>
编辑澄清:这是WPF问题:-)
你可以尝试检查VisualTree,我认为Snoop可能会有所帮助,它可能也有一些其他有用的功能。获得VisualTree虽然是一件小事,但你可以使用VisualTreeHelper
编写一个递归方法,所以你可能不需要大枪。
例如
public static TreeViewItem GetVisualTree(this DependencyObject dpo)
{
TreeViewItem item = new TreeViewItem();
item.Header = dpo.GetType().ToString().Split('.').Last();
if (dpo is FrameworkElement && (dpo as FrameworkElement).Name != string.Empty) item.Header += " (" + (dpo as FrameworkElement).Name + ")";
int cCount = VisualTreeHelper.GetChildrenCount(dpo);
for (int i = 0; i < cCount; i++)
{
item.Items.Add(VisualTreeHelper.GetChild(dpo, i).GetVisualTree());
}
return item;
}
写道,前一段时间,这是非常粗略(不建议使它的扩展方法),在一个得到整个树,可以修改为只在节点的扩展取孩子。
您可以使用像谷歌Chrome浏览器的工具。
我会在Chrome中右键单击具有滚动条的区域并选择“检查元素”。 Chrome会用边框突出显示您正在查看的元素。然后,您可以在Chrome浏览器的检查器中导航html,直到使用滚动条突出显示该元素。
然后,您可以从那里找到原因。
这是WPF .... – Fafnr 2011-05-10 13:55:17
你可以发布滚动条的SS吗? – 2011-05-10 10:39:48
对不起,我的老板真的很偏执,我们正在为第三方开发,我不允许上传屏幕截图:/ 这很愚蠢,但我不能反对上级... – Fafnr 2011-05-10 13:54:44