首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >冻结DataGrid列时,在水平滚动条的空白区域添加任何控件

冻结DataGrid列时,在水平滚动条的空白区域添加任何控件
EN

Stack Overflow用户
提问于 2013-01-24 00:08:35
回答 2查看 453关注 0票数 1

嗨,

我有一个FrozenColumnCount = 3HorizontalScrollBar总是可见的。现在,我需要在空白区域(滚动条左侧)添加控件--请参阅图像中的红色高亮显示区域。

我如何在那里添加任何控件?如果这类东西可以通过XAML (ControlTemplates)实现,那就太好了?我在我的应用程序中使用标准的WPF v4.0 datagrid

注:样本可以从这里下载- http://blogs.msdn.com/b/vinsibal/archive/2008/10/31/wpf-datagrid-frozen-row-sample.aspx

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-24 14:01:55

我从DataGrid样式和模板的文档开始。

注意模板中如下所示的部分

代码语言:javascript
复制
              <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的子级。

票数 2
EN

Stack Overflow用户

发布于 2013-01-24 00:19:28

你有两种解决办法。

安装窥探,找出这个区域属于什么元素,看看它是否可以在模板中访问(我希望你知道如何创建混合模板的副本)。

b.处理大小/移动事件,并在此区域上方放置一个控件,只需将控件精确地定位在网格模板中.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14491715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档