项目中经常遇到一些问题,这些问题可能很简单,但是之前从未遇到,可能经过了一番谷歌,也可能是查阅了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横向滚动条无法拖动的问题的更多相关文章

  1. WPF:解决DataGrid横向滚动条无法显示的问题

    DataGrid的最后一列的宽度设置为“Width=”auto””即可. 如果显示指定长度或者设置为“*”,那么不管怎么拖动列头,或者不管行里面的内容有没有超过DataGrid的显示区域,DataGr ...

  2. easyui datagrid 横向滚动条

    要出现横向滚动条则不能有fitColumns:true/false

  3. WPF,解决Listbox,按住ListboxItem向下拖出Listbox,横向滚动条跑到最后。

    类似这种样式的控件,.,在横向滚动条隐藏的情况下有这样的问题.(横向滚动条显示的时候也会,,目前不知道怎么解决.) 因为这个控件偏移是利用ListBox的ItemsPanelTemplate模版里的S ...

  4. jquery横向滚动条

    此代码献给wendy 由于工作太忙,下次再整理成插件调用,先记录下来,欢迎同学们提意见. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...

  5. table左边固定-底部横向滚动条

    是日有需求,曾探讨过table表单头部.尾部固定不动,中间内容随着滚动条的滚动而变化. 整合资料之际,发现有很多表格,表单展现中,横向数据很多.很长,不方便查看. 则,横空霹雳出了,此款:table表 ...

  6. UI组件--element-ui合计行在横向滚动条下面的解决方法

    使用element-ui合计功能, 因列数较多, 产生横向滚动条: 但是合计行却在滚动条下面, 拖动滚动条合计行不会跟着横向滚动. 在当前页面添加以下样式: <style lang='less' ...

  7. css 横向滚动条webkit-scrollbar

    最近遇到一个横向滚动条的问题: 官网链接: https://developer.mozilla.org/zh-CN/docs/Web/CSS/::-webkit-scrollbar 这个 ::-web ...

  8. android 横向滚动条

    /*** * 横向滚动条,修改版,从左向右滚动,支持html代码和html里面的网络图片 */public class MarqueeView extends LinearLayout { priva ...

  9. 逆天的IE7中,诡异的横向滚动条

    今天老邹我又要吐槽IE7了,这个奇葩浏览器总是不让省心.这回遇到的问题,灰常难发现是怎么回事,不过还是让我发现原因,哈哈,只要原因去干掉这个问题比躲避问题用别的办法绕开要爽的多啊. 首先我还是介绍下, ...

随机推荐

  1. Hadoop32位和64位的查询

    1.查看自己的hadoop版本是32位还是64位 进入: hadoop-2.6.4/lib/native 使用file命令 file libhadoop.so.1.0.0

  2. 应用框架 ViewPager Tab Fragment SlidingMenu

    介绍 常见的应用框架 框架一:多个tab+Fragment,点击不同的tab加载不同的Fragment,不能滑动切换只能点击切换: 框架二:多个tab+ViewPager+FragmentPagerA ...

  3. java中的异常机制(编译时异常)

    / * 1 异常机制的原理 * 异常是什么:就是错误的另外一种说法; * 在java中,有一个专门模拟所有异常的类,所有的异常都必须继承这个类:Throwable; * 本质是:当程序出错以后,jvm ...

  4. TreeView 数据绑定及选中命令处理

    昨天接近下班,一个群里面的网友,问treeView绑定后  选中命令怎么来处理,怎么没有效果,而且用MVVM的方式来写:快下班了本来想远程帮他看下,结果就说写个Demo给他看:再加上选中传参: 下面分 ...

  5. 将图片转换为Base64

    string Imagefilename   硬盘路径 protected string ImgToBase64String(string Imagefilename) { try { Bitmap ...

  6. 极度郁闷的错误调试——ajax jquery

     今天在写一个简单邮件验证的页面时,本来以为二十分钟的事情,却调试了一个半小时,简直郁闷,具体的错误如下: 在页面中,有一段如下的代码: <td colspan="3"> ...

  7. 解决Windows服务1053错误方法

    WCF使用MSMQ绑定寄宿在Windows服务上,但启动服务时出现1053错误 在网上搜索了N多解决方案,都是比较高深的扯到原理和系统bug等问题 看了看到最后也没有解决,最终我决定使用一个比较山寨的 ...

  8. WebStorm 使用快捷键大全

    1. ctrl + shift + n: 打开工程中的文件,目的是打开当前工程下任意目录的文件. 2. ctrl + j: 输出模板 3. ctrl + b: 跳到变量申明处 4. ctrl + al ...

  9. 【学习笔记】【Foundation】集合Set

    不可变集合 NSSet :集合元素无顺序,没有索引号,元素不可重复. NSSet在功能上可看做是NSArray的父集,它是一个更通用的类. NSSet包含如下常用方法: setByAddingObje ...

  10. testng,soket write error错误

    网上解决手段:  testng 工程报错java.net.SocketException SocketException: Software caused connection abort · Iss ...