Tag: 滚动条

WPF更改ListView滚动速度

我有一个带有自定义单元格(项目)的ListView 。 此ListView表示两个人与我的应用程序交换消息之间的对话。 每次添加消息时,对话都会自动滚动到最后一个项目。 我面临一些“奇怪”的问题: 当用户写一个相当长的消息(比如10行)时,它几乎可以占据整个屏幕(意味着分配给ListView的空间),这当然是正常的,但滚动有点破坏 。 首先,当列表自动滚动到此消息时,项目下方会出现一个大的空白区域,一直到我的ListView底部。 见图: 当消息很短(单行)时: 其次,在所有情况下,滚动速度都是快速的。 单个mous-wheel“笔划”(滚动时手指的感觉)会使滚动条移动太快:滚动最多4条小信息! 这太多了 ! 所以问题是:如何控制滚动速度? 如何放慢速度? 为什么会有这么大的白色空间? 谢谢您的帮助 ! [更新1] 请求@CurtisHx我的ListView XAML如下: http://pastebin.com/FFZGhi6w 我希望它有助于理解我的问题!

在dataGridView中更改垂直滚动条的宽度

我正在为触摸屏开发应用程序。 我被要求使滚动条的大小更大,以便用户可以使用它们。 到目前为止,我还没有能够对此进行排序。 我读到如果你增加MainForm窗口滚动条的宽度,那么dataGridView将inheritance它。 我尝试过一些东西,但到目前为止还没有让它发挥作用。 我尝试的两种最接近的方式是 1)当我构建网格时,我添加以下内容 foreach (Control ctrl in dataGridView1.Controls) if (ctrl.GetType() == typeof(VScrollBar)) ctrl.Width = 86; 不幸的是,这似乎得到宽度为17但不能用这个86的新值覆盖它。 接下来我把它放到我构建MainForm的地方仍然没有好处,垂直滚动条仍然看起来一样。 2)我发现我可以从工具箱中添加滚动条。 这里有一点进展,直到我尝试连接到dataGridView。 这个我做不到。 我有一个事件所以每次移动我都应该能够移动网格。 下面注释掉的是我用来确保获得价值的一些项目。 private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) { //MessageBox.Show(vScrollBar1.Value.ToString()); // MessageBox.Show(SystemInformation.VerticalScrollBarWidth.ToString()); // CalculateVerticalScrollbarWidth() * 4; } 所以我想我会问比我更高智商的观众,因为有人可能已经解决了这个问题,并会与我分享答案。

强制在ListView中显示滚动条?

背景知识 :我们大多数人都知道SysListView32公共控件和.NET Framework提供的等效包装器ListView类。 它内部的一点深度表明,它为滚动内容提供的滚动条不是控件本身,而是由SysListView32控件管理。 目标 :总是绘制滚动条,即使它没有要显示的ListViewItems ,或者只有很少的滚动条,无论如何都不需要滚动条; 有点像模仿RichTextBox类,其ScrollBars属性设置为ForcedBoth 。 或者有点像这个ListBox : 问题 : 对于ListView滚动条, .NET完全没有糖。 Win32文档未说明何时显示/隐藏和/或启用/禁用滚动条。 我的解决方法 : override派生类中的WndProc并按照步骤2和3处理其WM_HSCROLL和WM_VSCROLL消息。 调用base.WndProc来执行滚动function的实际所需处理。 创建一个类似WmScroll的方法,并after base.WndProc返回after立即对其after处理。 这包括对GetScrollInfo的ap / invoke调用。 确定是否确实需要滚动条。 如果不是,则调用ShowScrollBar和EnableScrollBar ,并使用所需的值绘制明显禁用的滚动条。 解决方法的问题 : 它几乎没有用。 滚动条显示和禁用,但与Windows经典主题下的滚动条类似。 它隐藏了每个ListViewGroup的折叠按钮,使它们无用! 描述性图片: 期待已久的实际问题 : 如何强制滚动条 在 ListView 始终 Visible , 而不管 ListView 的数量如何, 如果不需要它们,则禁用它们,同时避免大小错误计算 (显示 ListViewGroup 的 折叠按钮 ) 和主题恶化? 没有代码的答案,以及C# , VB.NET和C […]

如何在WPF中修改DataGrid垂直滚动条的位置?

已解决: 请使用XAML代码,屏幕截图和说明查看下面我自己的答案。 标题这一点有点难,所以让我解释一下我的问题。 我有一个具有已定义高度的数据网格,因此会出现滚动条。 我想将垂直滚动条包含到排除标题的区域。 虽然它只滚动数据行而不是标题,但在视觉上它覆盖了右边的整个数据网格区域。 问题在于滚动条区域出现两个框(一个在上方和下方)。 我不知道如何摆脱它们或如何将滚动条包含到datagrid的主体。 我唯一能够弄清楚的(我不喜欢它的外观)是将DataGrid的背景设置为透明。 结果如下: 如你所见,滚动条令人讨厌。 然后,如果背景是透明的,那么水平滚动条和最后一行之间也存在间隙的问题: 还有一个解决方案可以摆脱这两个盒子的数据网格的背景颜色,使它们更加突出: http://social.msdn.microsoft.com/Forums/vstudio/en-US/9fc4252b-38b1-4369-8d76-b6c5ae1e4df5/how-to-remove-the-blank-space-above-the-verticalscroolbar-of-数据网格式,WPF?论坛= WPF 类似的解决方案可以在这里找到: 恼人的广场滚动条相遇 但是,它并没有摆脱滚动条在侧面笨拙地伸出的问题。 我测试的是将标题与正文分开并将正文放入垂直ScrollViewer,然后将标题和正文放入水平ScrollViewer中,以便它们可以水平滚动。 但是,正如您想象的那样,这不会很好,因为您必须向右滚动才能看到verticall滚动条。 我确信有一种方法可以让它在右边保持冷冻状态,但我还没弄清楚。 另一个问题是标题宽度必须与该列中任何单元格的最大可能宽度相匹配,或者所有内容都将关闭。 这是向右滚动时显示的结果: 我是新手来控制模板,所以我无法弄清楚这是否可行,因为我找不到合适的组件: 如果我给垂直滚动条左边的一个负边距(比如-6,0,0,0)和一个类似大小的填充到单元格块的右边(0,0,6,0),垂直滚动条在技术上应该向左移动。 我将继续尝试并尝试解决这个问题,除非有人为我提供答案(这将是非常棒的)。 编辑#1: 好吧,我取得了一些进展,并能够将滚动条的边距设置为(-17,0,0,0)。 17似乎是滚动条的宽度。 它的宽度似乎有一个特定的键: http://msdn.microsoft.com/en-us/library/system.windows.systemparameters.verticalscrollbarwidthkey(v=vs.110).aspx 但我无法想出一种方法来将其作为XAML中边距的负偏移值插入。 在代码隐藏中做它并不难:但我宁愿把它全部保留在XAML中。 无论如何,这里是进度的截图和XAML代码部分: 这是XAML代码部分: 使更改成为可能的重要部分是在代码片段的中途,我为ScrollBar设置了Margin =“ – 17,0,0,0”。 我目前的问题是我无法确定哪个组件向左偏移17(通过添加边距或填充)。 到目前为止,我一直在弄乱他们所有人并且没有运气。 我会在得到它后立即更新,除非有人在我之前说出来。 就目前而言,滚动条将覆盖最后一列中的任何内容,直到我修复偏移量。 编辑#2: 请参阅上面更新的XAML代码。 我所做的是向ScrollContentPresenter添加Margin =“0,0,17,0”。 一个副作用效果,我可以完全忍受,是一个事实,也抵消了标题,但你看不到,直到你一直向右滚动。 它仅影响最后一列的标题,因为ScrollContentPresenter也将其偏移…奇怪的是,因为有一个DataGridColumnHeadersPresenter,但它独立工作……所以,我将继续处理它。 不幸的是,ScrollContentPresenter没有填充,这就像魅力一样。 所以,现在我必须弄清楚如何填充它,而不是设置边距,或找出不同的方法。 类似的方法是将水平ScrollBar(即第二个网格中的一个)的边距设置为0,0,-17,0。 它将向右移动17个单位。 然后,将DataGridColumnHeaderPresenter的边距设置为0,0,-17,0。 它将向右移动17个单位。 […]

使用带有滚动条的任何控件时,不会触发MouseWheel事件(在C#Windows窗体中)

当我使用带有滚动条的任何控件(ListBox,Panel,TextBox)时,MouseWheel事件不会触发。 重现问题: public class Form1 : Form { private readonly Button button1; private readonly TextBox textBox1; private void button1_MouseWheel(object sender, MouseEventArgs e) { ToString(); // doesn’t fire when uncomment lines below } public Form1() { button1 = new Button(); textBox1 = new TextBox(); SuspendLayout(); button1.Location = new System.Drawing.Point(80, 105); button1.Size = new System.Drawing.Size(75, 23); button1.MouseWheel […]

使用WPF WebBrowser显示内容来阻止滚动条

我正在使用WPF WebBrowser组件来显示一些非常简单的HTML内容。 但是,由于我事先并不知道内容大小,因此当我加载某些数据集时,我正在获取控件上的滚动条。 基本上,我如何强制(或以其他方式影响相当于强制)WebBrowser扩展大小,以便显示所有内容而不需要滚动条?

在WinForms中更改ListView中滚动条的颜色

是否可以更改ListView控件中滚动条的颜色。 它是一个Windows应用程序。 请让我知道我可以使用哪些属性或代码来执行此操作。 有人可以帮助你如何将主题应用于winforms(整个到我的应用程序),如在yahoo messenger / digby等。

使TabControl标题在WPF中可滚动

如标题中所提到的,我想将TabControl的标题更改为可滚动。 原因是:我有太多的tabItems,在我的情况下,包装不是最好的解决方案。 所以我想改变它: 对于类似的东西(箭头指示的滚动条): 任何人都可以帮助我并展示如何做到这一点? (我正在使用wpf)

WPF Datagrid – 未显示任何滚动条

我的Datagrid对ObservableCollection有一个绑定,并在对EF提取的一些值进行分组后得到填充。 我的问题是,datagrid-height超出了窗口大小。 有谁知道如何解决这个问题…我几乎用Google搜索了自己的死…:o Arsch

水平滚动条在DataGridView上不可见

我在Window窗体上有一个DataGridView ,它填充了30列和数千行。 ScrollBars属性设置为Both ,但仍然不显示水平滚动条。 即使我无法用键盘上的箭头键滚动。 我通过将ScrollBars属性设置为Horizontal来尝试它,但这没有任何区别。 有什么建议吗? 谢谢