DataGrid横向滚动条无法拖动的问题
项目中经常遇到一些问题,这些问题可能很简单,但是之前从未遇到,可能经过了一番谷歌,也可能是查阅了MSDN,或是借鉴了大牛博客,逐渐有了些眉目,为了将这些东西落地,也为了将来之不易的东西记录下来,以备今后查看,也希望能偶尔帮到一下遇到同样问题的同仁,带着这样的目的开始了我的TestProjects系列。
这个系列就是一系列的Demo,带着明确的目的写的Demo,这些东西可能是常见用法的一个记录,也可能是一个简单的API接口,也可能是平时认识的盲区,也可能。。总之,可能对今后有帮助的,都在这里被记录。
************************************那么 就从这里开始吧******************************************************
问题描述:WPF中DataGrid横向滚动条无法拖动
进一步观察:列头拖动大小的时候到最右端就不能继续再拖,始终无法超出DataGrid范围
测试代码:
<Window x:Class="DataGridTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TabControl>
<TabItem Header="会出现横向滚动条">
<Grid>
<Grid.RowDefinitions >
<RowDefinition Height="15"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DataGrid x:Name="testDataGrid"
HorizontalScrollBarVisibility="Visible"
AutoGenerateColumns="False"
Grid.Row="1">
<DataGrid.Columns>
<DataGridTextColumn Header="header1" Binding="{Binding Data1}" Width="auto"/>
<DataGridTextColumn Header="header2" Binding="{Binding Data2}" Width="auto"/>
<DataGridTextColumn Header="header3" Binding="{Binding Data3}" Width="auto"/>
<DataGridTextColumn Header="header4" Binding="{Binding Data4}" Width="auto"/>
<DataGridTextColumn Header="header5" Binding="{Binding Data5}" Width="auto"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
<TabItem Header="不会出现横向滚动条">
<Grid>
<Grid.RowDefinitions >
<RowDefinition Height="15"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="123123"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
<DataGrid x:Name="testDataGrid2"
HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Visible"
AutoGenerateColumns="False"
Grid.Row="1">
<DataGrid.Columns>
<DataGridTextColumn Header="header1" Binding="{Binding Data1}" Width="0.2*"/>
<DataGridTextColumn Header="header2" Binding="{Binding Data2}" Width="0.2*"/>
<DataGridTextColumn Header="header3" Binding="{Binding Data3}" Width="0.2*"/>
<DataGridTextColumn Header="header4" Binding="{Binding Data4}" Width="0.2*"/>
<DataGridTextColumn Header="header5" Binding="{Binding Data5}" Width="0.2*"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>
XAML
using System.Collections.Generic;
using System.Windows; namespace DataGridTest
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
IList<DataSourceEntity> entitys = new List<DataSourceEntity>();
for (int i = ; i < ; i++)
{
entitys.Add(new DataSourceEntity(i * ));
}
testDataGrid.ItemsSource = entitys;
testDataGrid2.ItemsSource = entitys;
}
} public class DataSourceEntity
{
public DataSourceEntity(int i)
{
Data1 = i;
Data2 = i;
Data3 = i;
Data4 = i;
Data5 = i;
Data6 = i;
}
public int Data1 { get; set; }
public int Data2 { get; set; }
public int Data3 { get; set; }
public int Data4 { get; set; }
public int Data5 { get; set; }
public int Data6 { get; set; }
} }
CodeBehind
结论:
/*
* 目的:探测滚动条何种情况不会滚动
*
* 结论:
* 蛋疼的设计,当DataGrid列宽按比列指定的时候,resize列宽,最大不会超过DataGrid宽度,所以无论
* 如何都不会出现滚动条,要想使用,需要指定列的宽度,或者设置为Auto也是可以的
* 此外,影响是否出现滚动条的因素还有很多,例如放到Grid中后,Grid高宽如果使用了Auto,
* 初始化的时候也是不会显示的,这种比较容易发现,因为使用HorizontalScrollBarVisibility或者
* VerticalScrollBarVisibility还是很容易发现滚动条位置的
*/
DataGrid横向滚动条无法拖动的问题的更多相关文章
- WPF:解决DataGrid横向滚动条无法显示的问题
DataGrid的最后一列的宽度设置为“Width=”auto””即可. 如果显示指定长度或者设置为“*”,那么不管怎么拖动列头,或者不管行里面的内容有没有超过DataGrid的显示区域,DataGr ...
- easyui datagrid 横向滚动条
要出现横向滚动条则不能有fitColumns:true/false
- WPF,解决Listbox,按住ListboxItem向下拖出Listbox,横向滚动条跑到最后。
类似这种样式的控件,.,在横向滚动条隐藏的情况下有这样的问题.(横向滚动条显示的时候也会,,目前不知道怎么解决.) 因为这个控件偏移是利用ListBox的ItemsPanelTemplate模版里的S ...
- jquery横向滚动条
此代码献给wendy 由于工作太忙,下次再整理成插件调用,先记录下来,欢迎同学们提意见. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...
- table左边固定-底部横向滚动条
是日有需求,曾探讨过table表单头部.尾部固定不动,中间内容随着滚动条的滚动而变化. 整合资料之际,发现有很多表格,表单展现中,横向数据很多.很长,不方便查看. 则,横空霹雳出了,此款:table表 ...
- UI组件--element-ui合计行在横向滚动条下面的解决方法
使用element-ui合计功能, 因列数较多, 产生横向滚动条: 但是合计行却在滚动条下面, 拖动滚动条合计行不会跟着横向滚动. 在当前页面添加以下样式: <style lang='less' ...
- css 横向滚动条webkit-scrollbar
最近遇到一个横向滚动条的问题: 官网链接: https://developer.mozilla.org/zh-CN/docs/Web/CSS/::-webkit-scrollbar 这个 ::-web ...
- android 横向滚动条
/*** * 横向滚动条,修改版,从左向右滚动,支持html代码和html里面的网络图片 */public class MarqueeView extends LinearLayout { priva ...
- 逆天的IE7中,诡异的横向滚动条
今天老邹我又要吐槽IE7了,这个奇葩浏览器总是不让省心.这回遇到的问题,灰常难发现是怎么回事,不过还是让我发现原因,哈哈,只要原因去干掉这个问题比躲避问题用别的办法绕开要爽的多啊. 首先我还是介绍下, ...
随机推荐
- 0x05: post 守护进程(deamon) json 任务调度
python 签名 post #coding:utf-8 import urllib,urllib2 url='http://wtf.thinkphp.com/index.php?m=&c=t ...
- 重学《C#高级编程》(对象与类型)
昨天重看了下<C#高级编程>里面的对象与类型一章,发现自己有许多遗漏没懂的地方重新弄清楚明白了 先说说什么是对象吧,我个人的感觉是:在编程的世界里,一段程序就是一个事物的处理逻辑,而对象就 ...
- Calling a C++ dll with unsigned char* parameters
unsigned char* 等价 BYTE* 例1: C++: int __stdcall LIVESCAN_GetFPRawData(int nChannel, unsigned char *p ...
- Spring Boot Web项目之参数绑定
一.@RequestParam 这个注解用来绑定单个请求数据,既可以是url中的参数,也可以是表单提交的参数和上传的文件 它有三个属性,value用于设置参数名,defaultValue用于对参数设置 ...
- C++ 约瑟夫环
约瑟夫环: 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直到圆桌周 ...
- vi初接触
vi初接触 它有三种模式: 一 一般模式 二 编辑模式 三 命令行模式 介绍几种比较常用的吧 -- 退出:q 写入:w 强制:! (以上可叠加) 显示行号:set nu 取消:set nonu 跳转到 ...
- JSP中取COOKIE中指定值得方法【转载】
Cookie cookies[]=request.getCookies(); //读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面 Cookie sCookie=n ...
- jquery keypress事件浏览器兼容性
今天在做“财务管理系统”的时候,使用jquery的ajax从前台传递用户输入到后台,并保存到数据库,但是在前台为了界面的简介和一致性,没有使用按 钮来实现"确定"和"取消 ...
- phpcms插件开发初步规范
phpcms公用库函数原型 (一)./include/global.php 中的函数可在phpcms的任何一个程序中调用,下面是各函数的原型及用法. message($alert,$goback='' ...
- php判断是移动端还是pc
//判断是否是手机 function is_mobile() { $agent = strtolower($_SERVER['HTTP_USER_AGENT']); $is_pc = (strpos( ...