C# wpf怎么在grid添加自定义控件时显示滚动条

C# wpf怎么在grid添加自定义控件时显示滚动条,第1张

你应该先在Grid中加

ScrollView

,然后再在ScrollView中再添加一个容器(比如Grid),你再将自定义控件加入到第二个Grid中。

而且我不推荐你在对WPF有更深入的了解后这么做,我更建议你创建一个控件,继承ListView或ListBox,修改模板,然后自定义事件,最后通过绑定来实现。

winform panel设置AutoScroll为True,当panel内控件超出panel范围时,就会显示滚动条,如下所示:

AutoScroll 属性说明

获取或设置一个值,该值指示容器是否允许用户滚动到任何放置在其可见边界之外的控件。

public virtual bool AutoScroll { getset}

属性值

Type: System.Boolean

如果容器允许自动滚动,则为 true;否则为 false。默认值为 false。

备注

为 true 时,此属性允许容器有一个大于其可见边界的虚拟大小。

当前 Windows 窗体中有一个限制,当启用了 RightToLeft 并且将 AutoScroll 设置为 Yes 时,该限制会使派生自 ScrollableControl 的所有类无法正确 *** 作。例如,假设在窗体上放置了一个控件(如 Panel)或从 Panel 派生的容器类(如 FlowLayoutPanel 或 TableLayoutPanel)。如果将容器的 AutoScroll 设置为 Yes,然后将容器内部的一个或多个控件的 Anchor 属性设置为 Right,则不会显示任何滚动条。从 ScrollableControl 派生的类的行为与 AutoScroll 设置为 No 时的行为类似。

DataGrid的HorizontalScrollBarVisibility="Visible"只有在内容超出是显示,你是要使用显示?内容不超出的时候也显示但是不可用的效果吗?

如需始终显示,需要修改DataGrid的模板。

原始模板中的滚动条代码如下:

<ScrollBar x:Name="PART_HorizontalScrollBar" 

Grid.Column="1" 

Maximum="{TemplateBinding ScrollableWidth}" 

Orientation="Horizontal" 

Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" 

Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" 

ViewportSize="{TemplateBinding ViewportWidth}"/>

Visibility绑定的是ComputedHorizontalScrollBarVisibility,修改这个属性即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11870956.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存