项目中经常遇到一些问题,这些问题可能很简单,但是之前从未遇到,可能经过了一番谷歌,也可能是查阅了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. NS2仿真:公交车移动周期模型及性能分析

    NS2仿真实验报告3 实验名称:公交车移动周期模型及性能分析 实验日期:2015年3月16日~2015年3月21日 实验报告日期:2015年3月22日 一.实验环境(网络平台,操作系统,网络拓扑图) ...

  2. ado.net(1)

    connection对象处于最顶层,是所有数据请求的关口 数据库连接过程 SqlConnection theConnection = new SqlConnection(); //创建一个connec ...

  3. Js打开新窗口拦截问题整理

    一.js打开新窗口,经常被拦截 //js打开新窗口,经常被拦截 //指定本窗口打开,可以使用 window.open('http://www.tianma3798.cn', '_self'); //不 ...

  4. IE下判断IE版本的语句

    <!--[if lte IE 6]> <![endif]--> IE6及其以下版本可见   <!--[if lte IE 7]> <![endif]--> ...

  5. c - 给分数分级别

    /* 题目: 学习成绩>=90 分的同学用 A 表示, 80-89 分之间的用 B 表示,70-79 分的用 C 表示, 60-69 分用 D表示,小于60分用E表示. 分析: 使用swith. ...

  6. php访问方法外变量

    class Capture { private static $_CapSite = 222; function dd() { echo self::$_CapSite; } } $cc=new Ca ...

  7. 武汉科技大学ACM :1008: 小t和小w

    Problem Description 小t最近学了C语言,他想要在女朋友小w面前展示一下自己的能力,小w喜欢如样例所示的图形, 想让小t写一个程序来输出这样的图形,小t拿到后感觉有点困难,小t不想在 ...

  8. Linux 挂载iso,并设置为源

    ubuntu在安装lsb-core时需要从 /media/cdrom中查找源,无奈我机器的光驱被我换为硬盘了,无法安装光盘,只有在网上下载的iso文件在硬盘中,所以把iso挂载到它要查找位置 执行: ...

  9. angular启动过程分析

    启动过程 步骤一 用自执行函数在代码完成加载后立即执行 function(window, document, undefined) 在window上暴露一个唯一的全局对象angular,Line250 ...

  10. 23个phpcms v9模板制作及二次开发常用代码案例

    0:调用最新文章,带所在版块 {pc:get sql="SELECT a.title, a.catid, b.catid, b.catname, a.url as turl ,b.url a ...