
嗨,
我有一个FrozenColumnCount = 3,HorizontalScrollBar总是可见的。现在,我需要在空白区域(滚动条左侧)添加控件--请参阅图像中的红色高亮显示区域。
我如何在那里添加任何控件?如果这类东西可以通过XAML (ControlTemplates)实现,那就太好了?我在我的应用程序中使用标准的WPF v4.0 datagrid。
注:样本可以从这里下载- http://blogs.msdn.com/b/vinsibal/archive/2008/10/31/wpf-datagrid-frozen-row-sample.aspx
发布于 2013-01-24 14:01:55
我从DataGrid样式和模板的文档开始。
注意模板中如下所示的部分
<Grid Grid.Column="1"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset,
RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ScrollBar x:Name="PART_HorizontalScrollBar"
Grid.Column="1"
Orientation="Horizontal"
ViewportSize="{TemplateBinding ViewportWidth}"
Maximum="{TemplateBinding ScrollableWidth}"
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
Value="{Binding HorizontalOffset, Mode=OneWay,
RelativeSource={RelativeSource TemplatedParent}}"/>
</Grid>此部分定义了DataGrid中的底部滚动条区域。注意到绑定到NonFrozenColumnsViewportHorizontalOffset --该值决定了空左区域的宽度。
您可以将整个DataGrid模板复制到项目中应用程序资源中的样式中。然后,将自己命名的水平StackPanel插入到Grid.Column="0“(兄弟姐妹到ScrollBar)中,然后可以添加自己的子按钮、文本等作为新StackPanel的子级。
发布于 2013-01-24 00:19:28
你有两种解决办法。
安装窥探,找出这个区域属于什么元素,看看它是否可以在模板中访问(我希望你知道如何创建混合模板的副本)。
b.处理大小/移动事件,并在此区域上方放置一个控件,只需将控件精确地定位在网格模板中.
https://stackoverflow.com/questions/14491715
复制相似问题