防止WPF WebBrowser显示内容时出现滚动条
我正在使用wpf webbrowser 要显示一些非常简单的HTML内容的组件.但是,由于我不提前知道内容大小,因此当我加载某些数据集时,我目前在控件上获得滚动条. 基本上,我如何强制强制(或以其他方式效力强迫)webbrowser扩展大小,以便在不需要滚动条的情况下显示所有内容? 解决方案 我想您可以通过其文档属性获得Webbrowser组件内容的宽度和高度,该属性应为mshtml.htmldocument类型.我相信您应该能够使用身体或纪录片属性来获得所需的尺寸;这样的smth: mshtml.HTMLDocument htmlDoc = webBrowser.Document as mshtml.HTMLDocument; if (htmlDoc != null && htmlDoc.body != null) { mshtml.IHTMLElement2 body = (mshtml.IHTMLElement2)htmlDoc.body; we
0 2024-04-15
编程技术问答社区
WPF滚动条样式
是否可以像这张图片中创建卷轴? 这张照片是从此链接中拍摄的: http://http://http://codesdirectory.blogspot.be/2013/01/wpf-scrollviewer-control-style.html . 我在帖子中尝试了一个示例,但结果看起来像: 该职位是3岁的,所以这可能是正常的. 是否可以像第一张图片那样创建滚动条?我一直在寻找几个小时来找到一个模板,这是我最接近的模板. 我将Windows Form应用程序转换为WPF,主要原因是Scrollbars! 这是上面图片的XAML:
0 2024-04-14
编程技术问答社区
表格布局面板滚动条
给出了一个带有2列和许多行的表布局面板,我该如何在滚动条上进行滚动条,因为有时它的生长大于表单的大小. 谢谢 解决方案 TableLayoutPanel TableLayoutPanel TableLayoutPanel 是 ScrollableControl ScrollableControl .因此,您可以将其AutoScroll属性设置为true,并且在首选尺寸超过其当前尺寸时,该控件将自动创建滚动条.这将为您提供最小的麻烦效果. 程序 将MaximumSize属性设置为首选的最大尺寸,也可以将表格中的TableLayoutPanel停靠. 将TableLayoutPanel的AutoScroll属性设置为true. 仅供参考: 面板,工具条,flowlayoutpanel,splitterpanel,tablelayoutpanel,tabpage和woolstripcontentpanel都继承了ScrollableControl类,因此此答
0 2024-04-14
编程技术问答社区
如何修复窗口或容器调整大小时的滚动条?
目前在我的应用程序中,我使用的是HSCrollbar和VSCrollbar在大图中进行平移.所示图像的一部分基于滚动条的值属性.但是,当调整拆分范围或调整表单窗口大小时,滚动栏的值不会自动更新,并且可能会在屏幕外呈现一些东西. 在这一点上,我注意到,如果您单击滚动条的箭头,它会神奇地修复滚动条.我想知道是否有任何方法可以在form_res_resize和splitContainer_resize事件处理程序中进行单击滚动栏进行此操作,但我找不到任何东西. 必须在所有调整事件中手动调整滚动条的价值是缓慢,丑陋的,而且效果不佳.我真的很想让Scrollbar像单击箭头时一样的窗口大小时自动修复自身,但我不确定如何. 解决方案 尝试在表格大小的事件处理程序中调用scrollbar的Invalidate()方法: http://msdn.microsoft.com/en -us/library/system.windows.forms.control.invalidate.
0 2024-04-14
编程技术问答社区
微软VS滚动条的行为或与触屏窗体的错误
我发现了VSCrollbar(Visual Studio工具盒中的垂直滚动条)发现了一种奇怪的行为.问题是" 如果我在滚动栏上滑动,它会向上移动.如果我向上滑动,它将向下移动". 复制错误或行为的步骤-1 1)将vscrollbar小时候添加到任何用户控件中. 2)在用户控件上向上或向下滑动(不在滚动栏上).即使内容与VSCrollbar之间没有任何编程连接,垂直滚动栏也朝相反的方向移动 复制错误或行为的步骤-2 1)将vscrollbar小时候添加到任何用户控件中. 2)在滚动栏上滑动,在滑动过程中上下滑动时会向上移动(正确行为) 3)在用户控件上向上或向下滑动.垂直滚动栏沿相反方向移动 4)现在在垂直滚动栏上向上或向下滑动.垂直滚动栏开始朝相反的方向移动(错误行为,仅发生在错误:1之后) ) 用垂直滚动条的简单控制以复制此行为 public class QuickViewer : Control { public
0 2024-04-14
编程技术问答社区
如何修改WPF中DataGrid垂直滚动条的位置?
已解决: 请在下面查看我自己的答案,其中XAML代码,屏幕截图和解释. 很难给这个标题标记,所以让我解释一下我的问题是什么.我有一个具有定义高度的数据杂志,因此出现滚动条.我想将垂直卷轴包含到排除标头的区域.虽然它仅滚动数据行而不是标头,但视觉上覆盖了右侧的整个数据杂志区域.问题是在滚动栏区域出现了两个盒子(一个上方和下方).我不确定如何摆脱它们或如何将滚动条包含到数据杂志的正文中. 我唯一能够弄清楚的是(我不喜欢它的外观)就是将数据杂志的背景设置为透明.这是结果: 如您所见,滚动条正在烦人.然后,如果背景是透明的,则还存在水平滚动条与最后一行之间差距的问题: 还有一个解决方案可以摆脱这两个盒子的数据杂志的背景颜色,使它们脱颖而出: http://social.msdn.microsoft.com/forums/forums/vstudio/en-us/9fc4252b-38b1-43699fc4252b-1-38b1-43699 -8d76-b6c5ae1
2 2024-04-13
编程技术问答社区
如何禁用FlowLayoutPanel中的水平滚动条?
我有一个flowlayoutpanel,上面有多个控件.我只想沿垂直方向滚动.但是,当我设置AutoScroll = true时,我既有垂直和水平滚动条.我如何禁用水平滚动条,只能保持垂直滚动条的工作? 解决方案 set 自动滚动 ture set wrapcontents false. 确保大小比 控制宽度以及垂直滚动条的宽度. 水平卷轴应消失.如果没有,请提供更多信息. 其他解决方案 将自动滚动设置为true. 将包裹特征设置为false. 将填充物设置为10. 这对我来说很好. 其他解决方案 这是我在带有包裹文本(WrapContents = true)的Flowlayoutpanel上实现多个标签的方式,仅垂直旋转. 我在表格上有一个flowlayoutpanel1 设置形式和flowlayoutpanel1的属性,如下所示: 表格: AutoScroll = True FormBorderStyle = Sizable
4 2024-04-13
编程技术问答社区
当内容超出界限时在文本框中显示滚动条 C#
仅当文本框中的行计数大于显示的行数时,才可以在文本框中显示/隐藏滚动条? 解决方案 考虑使用 richtextbox - 它具有内置的行为. 其他解决方案 谢谢假人,它有效!这里的简短版本的虚拟答案在c# 中 在您的sizechanged and Textchanged操作器的末尾调用此代码: Size textBoxRect = TextRenderer.MeasureText( this.YourTextBox.Text, this.YourTextBox.Font, new Size(this.YourTextBox.Width, int.MaxValue), TextFormatFlags.WordBreak | TextFormatFlags.TextBoxControl); try { this.YourTextBox.ScrollBars = textBoxRect.Height > this.YourT
0 2024-04-13
编程技术问答社区
如何在C#中找到Scrollviewer的垂直滚动条宽度
我有一个scrollviewer,在其中显示垂直滚动条,现在我想更改系统的分辨率,我想获得滚动条的宽度. I went through One StackOverflow Post他们在那里提到要检查SystemParameters.crollwidth属性,但我再次从他们那里找到了任何帮助.任何人都可以帮助我解决我的问题吗?任何答案都将不胜感激. 解决方案 我想是您要寻找的. 其他解决方案 我不确定这是正确的答案.每个WPF控件都可以重新设计,甚至可以滚动. so systemparameters.verticalscrollbarwidth 仅在将其用作默认滚动条时才能起作用.正确的解决方案是在视觉树中找到垂直滚动条,并测量其实际宽度.这是最精确的测量. 其他解决方案 正如某些答案所建议的那样,SystemParameters.VerticalScrollBarWidth返回用于系统控件的常数. 但是,此值并不可靠.例如,ScrollBar元素本可以是自定义的,也
0 2024-04-13
编程技术问答社区
滚动到C# DataGridView的底部
我正在尝试在C#Winform中滚动到DataGridView的底部. 此代码与文本框一起使用: textbox_txt.SelectionStart = textbox_txt.Text.Length; textbox_txt.ScrollToCaret(); ...但是我不知道如何使用DataGridView进行操作.有任何帮助吗? 解决方案 滚动到DataGridView的底部>尝试. dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount-1; 其他解决方案 作为商业程序员,我使用C#DLL来处理所有DataGridView项目,这使我为我从事的任何项目提供了语言自由.我所有的程序都会捕获所有关键压力,以便我可以将它们用于自己的目的.对于DataGridView滚动,我将单个页面的页面/PageDown键,单行的Ctrl/Page和top(上)和底部(下)的a
0 2024-04-13
编程技术问答社区
改变滚动条的宽度
我正在制作触摸屏程序.我正在使用C#和Visual Studio2008.是否有任何方法可以更改滚动条的宽度?我知道我可以更改Windows的显示属性.但是我只希望在我的程序中不在完整的系统中.感谢您的帮助! 解决方案 检查一下: winforms-调整scheckedlistbox上垂直滚动的宽度 也值得一提的是: .net紧凑型框架 更多相同,但是这次通过使用滚动栏控件有了更好的解决方案: 更改scrollbar的宽度 另一个人教导如何创建自己的滚动栏控件(有趣)的另一个人: 设置datagridview的滚动宽度 最后一个(值得尝试): 有没有办法获得scrollbar的高度和listview Control的scrollbar高度和宽度 其他解决方案 最简单的方法是搜索表单/控件的ControlCollection中的滚动栏实例,然后简单地更新宽度值. foreach(Control ctrl in data
0 2024-04-12
编程技术问答社区
有什么方法可以获得滚动条的高度和宽度?
我正在尝试获取ListView上显示的滚动条的高度和宽度.是否有捷径可寻?我做了一些Google'ing,看起来可能是系统设置.我只是不确定在哪里看. 解决方案 是的,它是系统设置.使用 systemInformation .horizo​​ntalsCrollBarHeight 和 名称空间:System.Windows.Forms 其他解决方案 在.net cf上,其中SystemInformation.HorizontalScrollBarHeight和SystemInformation.VerticalScrollBarWidth不存在,需要一些p/instoke: public sealed class Native { public static Int32 GetVerticalScrollbarWidth() { return GetSystemMetrics(SM_CXVSCROLL); } pu
0 2024-04-12
编程技术问答社区
如何禁用winforms中的表格面板的水平滚动条
嗨,我有一个tablayoutpanel,我会动态地对其进行绑定.当项目计数超过面板的高度时,显然会出现垂直滚动条,没有问题. ,但同一时间水平滚动条也出现了,即使项目宽度小于面板的宽度.我该如何预防? 解决方案 int vertScrollWidth = SystemInformation.VerticalScrollBarWidth; tableLayoutPanel1.Padding = new Padding(0, 0, vertScrollWidth, 0); 其他解决方案 我有一个靠停靠的TableLayoutPanel的问题,该tablayoutpanel包含停靠的组盒,单列设置为100%宽度.我不想为这些设置手动尺寸 - 我希望它们与表格一起调整大小. 奇怪的是,将TableLayoutPanel的正确填充物设置为1(不是滚动条的宽度 - 正如您所期望的那样,滚动栏大小的间隙)完全解决了问题.这是在C#2010 Express,.Net 4,W
0 2024-04-12
编程技术问答社区
水平滚动条在DataGridView上不可见
i在窗口上有一个DataGridView,该窗口上有30列和数千行. ScrollBars属性设置为Both,但仍不可见水平滚动条.即使我也无法使用键盘上的箭头键滚动. 我也通过将ScrollBars属性设置为Horizontal尝试过,但这没有任何区别. 请有什么建议? 谢谢 解决方案 好吧,整理了. 我正在回答自己的问题;将来可能会帮助某人. 其中一列的Frozen属性集为True.对于所有列,应为false. 现在,Scrollbar对我来说绝对很好. 欢呼 其他解决方案 我知道这已经解决了,但是我遇到了可能发生这种情况的另一个原因,所以想我会作为答案,以防其他人有同样的问题. 如果您的表单具有datagridView,该数据杂志要填写表格,并且表格还具有状态栏,然后根据其创建的顺序,状态栏可以隐藏DataGridView的scrollbar.要解决此问题,请右键单击DataGridView,然后选择" Bring To F
0 2024-04-12
编程技术问答社区
水平滚动条消失 设置最后一列的尺寸来填充
我有一个具有4列的datagridview.我想要: 要显示每个单元格中的所有文本(我不想看到任何文本" ...") ) 最后一列填充所有剩余空间 水平和垂直卷轴. 使用此代码: dataGridView.ScrollBars = ScrollBars.Both; Grid_NonAnatObj.AutoResizeColumns(); GridCol_Visibility.Width = 30; 我看到每个单元格中的所有文本都没有截断,并且看到了水平和垂直卷轴. 当我尝试添加此代码 时 Grid_NonAnatObj.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 为了满足2.,水平滚动栏消失了. 我该如何解决这个问题? 解决方案 这是一个黑客攻击,但这是我想要的最接近您想要的结果的最好的方法. 要显示每个单元格中的所有文本(我不想看到任何文本
0 2024-04-12
编程技术问答社区
WPF TextBlock中的自动垂直滚动条?
我在wpf中有TextBlock.我写了许多行,远远超过了其垂直高度.我期望发生这种情况时会自动出现垂直滚动条,但事实并非如此.我试图在属性窗格中寻找滚动条属性,但找不到一个. 一旦其内容超过其高度,我如何才能为我的TextBlock自动创建垂直滚动条? 澄清:我宁愿从设计师那里做,而不是直接写给XAML. 解决方案 将其包装在滚动查看器中: 注意此答案适用于原始问题中要求的TextBlock(仅读取的文本元素). 如果要在TextBox中显示滚动条(一个可编辑的文本元素),请使用ScrollViewer附加的属性:
0 2024-04-11
编程技术问答社区
在WinForms中改变ListView中滚动条的颜色
在Windows表单应用程序中,是否可以更改scrollbar的颜色? 请让我知道实现这一目标所需的属性或代码,我找不到,也无法开发类似的东西. 我的目的是将主题应用于我的整个Winforms应用程序. 解决方案 简短答案:不,这是不可能的. 答案越长(且更准确): 不幸的是,这与设置属性那样简单.原因是ListView控件使用的滚动条不是实际的滚动条控件.他们没有自己的窗户手柄,并且通过ListView控件在内部完全管理其图纸.而且,当然,Winforms中的ListView控制只是Win32 API提供的相同控制的薄包装.他们俩都没有暴露任何改变滚动条的颜色的设施. ,但情节变厚.我说ListView控件(请注意,这也适用于TreeView)处理绘制卷轴本身的绘制,这应该表明您不能简单地处理其Paint事件,并像您一样自己绘制它们其他许多Winforms控件. Paint事件对应于窗口消息WM_PAINT,但是还有另一个消息(WM_NCPAINT),当需
0 2024-04-11
编程技术问答社区
捕捉文本框滚动事件?
Textbox或richtextbox,我唯一想要的是在滚动栏移动时触发功能. 我已经找到GetScrollPos和SetScrollPos.我想到定期检查滚动栏位置,但必须有更好的方法. 那么,使用winforms的更好方法是什么? 解决方案 假设Winforms,您可以尝试使用Pinvoking: public class MyRTF: RichTextBox { private const int WM_HSCROLL = 0x114; private const int WM_VSCROLL = 0x115; private const int WM_MOUSEWHEEL = 0x20A; protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == WM_VSCROLL || m.Msg == WM_HSCROL
0 2024-04-11
编程技术问答社区
TableLayoutPanel显示垂直滚动
我有用于动态创建控制控制的TableLayoutpanel = true.当我添加新控件时,它可以正常工作.但是,当我卸下所有控件时,都可以看到垂直滚动. 这里有一些屏幕截图: 预期/正确的滚动可见度: 可见性不正确: 有什么想法? 更新: 这是一些代码 tableLayoutPanel1.SuspendLayout(); tableLayoutPanel1.RowCount = 0; tableLayoutPanel1.RowStyles.Clear(); tableLayoutPanel1.AutoScroll = true; tableLayoutPanel1.Padding = new Padding(0, 0, SystemInformation.VerticalScrollBarWidth, 0); foreach (var item in objects) { tableLayoutPanel1.RowCount++; ta
0 2024-04-11
编程技术问答社区
从富文本框控件中获取当前滚动位置?
我已经搜索了互联网,并且看到了许多这样的问题,但是我没有看到实际答案. 我有一个丰富的文本框控件,其中包含很多文本.它在此控件中有一些法律信息.默认情况下,禁用"接受"按钮.我想检测滚动事件,如果V-Scroll栏的位置在底部.如果在底部,请启用按钮. 如何检测当前的V-SCroll栏位置? 谢谢! 编辑 我正在使用winforms(.net 4.0) 解决方案 这应该使您接近所需的内容.该类从RichTextbox继承,并使用一些PinVoking来确定滚动位置.它添加了一个事件ScrolledToBottom,如果用户使用滚动栏或使​​用键盘滚动,该事件会发射. public class RTFScrolledBottom : RichTextBox { public event EventHandler ScrolledToBottom; private const int WM_VSCROLL = 0x115; private
0 2024-04-11
编程技术问答社区