WPF,ScrollViewer的属性VerticalScrollBarVisibility、HorizontalScrollBarVisibility值的区别

ScrollViewer.HorizontalScrollBarVisibility 属性

获取或设置一个值,该值指示是否显示水平方向的滚动条。

ScrollViewer.VerticalScrollBarVisibility 属性

获取或设置一个值,该值指示是否显示垂直方向的滚动条。



VerticalScrollBarVisibilityHorizontalScrollBarVisibilityScrollBarVisibility枚举类型的值,默认值为Visible

    //
    // 摘要:
    //     指定的可见性 System.Windows.Controls.Primitives.ScrollBar 的可滚动的内容。
    public enum ScrollBarVisibility
    {
        //
        // 摘要:
        //     一个 System.Windows.Controls.Primitives.ScrollBar 不即使不会出现在视区无法显示的所有内容。 内容的维度设置为相应的维度的
        //     System.Windows.Controls.ScrollViewer 父级。 对于水平 System.Windows.Controls.Primitives.ScrollBar,
        //     ,内容的宽度设置为 System.Windows.Controls.ScrollViewer.ViewportWidth 的 System.Windows.Controls.ScrollViewer。
        //     对于垂直 System.Windows.Controls.Primitives.ScrollBar, ,内容的高度设置为 System.Windows.Controls.ScrollViewer.ViewportHeight
        //     的 System.Windows.Controls.ScrollViewer。
        Disabled = 0,
        //
        // 摘要:
        //     一个 System.Windows.Controls.Primitives.ScrollBar 出现和维度的 System.Windows.Controls.ScrollViewer
        //     视区无法显示的所有内容时应用于内容。 对于水平 System.Windows.Controls.Primitives.ScrollBar, ,内容的宽度设置为
        //     System.Windows.Controls.ScrollViewer.ViewportWidth 的 System.Windows.Controls.ScrollViewer。
        //     对于垂直 System.Windows.Controls.Primitives.ScrollBar, ,内容的高度设置为 System.Windows.Controls.ScrollViewer.ViewportHeight
        //     的 System.Windows.Controls.ScrollViewer。
        Auto = 1,
        //
        // 摘要:
        //     一个 System.Windows.Controls.Primitives.ScrollBar 不即使不会出现在视区无法显示的所有内容。 维度的 System.Windows.Controls.ScrollViewer
        //     不应用于内容。
        Hidden = 2,
        //
        // 摘要:
        //     一个 System.Windows.Controls.Primitives.ScrollBar 始终显示。 维度的 System.Windows.Controls.ScrollViewer
        //     应用于内容。 对于水平 System.Windows.Controls.Primitives.ScrollBar, ,内容的宽度设置为 System.Windows.Controls.ScrollViewer.ViewportWidth
        //     的 System.Windows.Controls.ScrollViewer。 对于垂直 System.Windows.Controls.Primitives.ScrollBar,
        //     ,内容的高度设置为 System.Windows.Controls.ScrollViewer.ViewportHeight 的 System.Windows.Controls.ScrollViewer。
        Visible = 3
    }

通俗一点讲:

  1. Disabled,禁用滚动条。表现在无论内容是否超过父容器大小,都不会显示滚动条,并且滚动鼠标滑轮也不会滑动内容。
  2. Auto,自动。内容不超出父容器时,不显示滚动条,超出父容器时,显示滚动条。
  3. Hidden,隐藏滚动条。与Disabled的区别在于,这里只是隐藏,当滚动鼠标滑轮时,依然可以滚动内容。
  4. Visible,始终显示。不论内容是否超过父容器大小,都会显示滚动条。

可通过以下示例查看效果:

<Window x:Class="ScrollViewer.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ScrollViewer"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">

    <Window.Resources>
        <Style x:Key="BorderStyle" TargetType="{x:Type Border}">
            <Setter Property="Background">
                <Setter.Value>
                    <LinearGradientBrush>
                        <LinearGradientBrush.GradientStops>
                            <GradientStop Color="AliceBlue" Offset="0"/>
                            <GradientStop Color="AntiqueWhite" Offset="0.2"/>
                            <GradientStop Color="Aqua" Offset="0.4"/>
                            <GradientStop Color="Aquamarine" Offset="0.6"/>
                            <GradientStop Color="Azure" Offset="0.8"/>
                            <GradientStop Color="Beige" Offset="1.0"/>
                        </LinearGradientBrush.GradientStops>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>

        <ScrollViewer VerticalScrollBarVisibility="Auto">
            <Border Height="800" Style="{StaticResource BorderStyle}" ToolTip="Auto"/>
        </ScrollViewer>
        <ScrollViewer Grid.Column="1" VerticalScrollBarVisibility="Auto">
            <Border Height="300" Style="{StaticResource BorderStyle}" ToolTip="Auto"/>
        </ScrollViewer>

        <ScrollViewer Grid.Column="2" VerticalScrollBarVisibility="Disabled">
            <Border Height="800" Style="{StaticResource BorderStyle}" ToolTip="Disabled"/>
        </ScrollViewer>
        <ScrollViewer Grid.Column="3" VerticalScrollBarVisibility="Disabled">
            <Border Height="300" Style="{StaticResource BorderStyle}" ToolTip="Disabled"/>
        </ScrollViewer>

        <ScrollViewer Grid.Column="4" VerticalScrollBarVisibility="Hidden">
            <Border Height="800" Style="{StaticResource BorderStyle}" ToolTip="Hidden"/>
        </ScrollViewer>
        <ScrollViewer Grid.Column="5" VerticalScrollBarVisibility="Hidden">
            <Border Height="300" Style="{StaticResource BorderStyle}" ToolTip="Hidden"/>
        </ScrollViewer>

        <ScrollViewer Grid.Column="6" VerticalScrollBarVisibility="Visible">
            <Border Height="800" Style="{StaticResource BorderStyle}" ToolTip="Visible"/>
        </ScrollViewer>

        <ScrollViewer Grid.Column="7" VerticalScrollBarVisibility="Visible">
            <Border Height="300" Style="{StaticResource BorderStyle}" ToolTip="Visible"/>
        </ScrollViewer>
    </Grid>
</Window>

效果如下:

原文地址:https://www.cnblogs.com/fanful/p/12335113.html

时间: 2024-10-06 12:59:09

WPF,ScrollViewer的属性VerticalScrollBarVisibility、HorizontalScrollBarVisibility值的区别的相关文章

WPF DataGrid常用属性记录

WPF DataGrid常用属性记录 组件常用方法: BeginEdit:使DataGrid进入编辑状态. CancelEdit:取消DataGrid的编辑状态. CollapseRowGroup:闭合DataGrid的行分组. CommitEdit:确认DataGrid的编辑完成. ExpandRowGroup:展开DataGrid的行分组. GetGroupFromItem:从具体Item中得到分组. ScrollIntoView:滚动DataGrid视图. 组件常用属性: Alternat

滚动条——WPF ScrollViewer的应用

WPF ScrollViewer的应用 我们知道在一个限定高的窗体和容器中,想要把内容显示完是有些问题的,这个时候我们就要使用类似于浏览器的那个滚动条的效果了,在wpf中也同样如此,最近就碰到了这样的问题,也纠结了很长时间,调试滚动效果的时候一直出不来,还好现在调试好了,把代码贴出来 xaml: <StackPanel> <ScrollViewer Name="scroll" Margin="0,50" Width="720"

WPF利用依赖属性和命令编写自定义控件

以实例讲解(大部分讲解在代码中) 1,新建一个WPF项目,添加一个用户控件之后在用户控件里面添加几个控件用作测试, <UserControl x:Class="SelfControlDenpendy.SelfControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006

WPF 依赖项属性

WPF中的依赖项属性 “依赖项属性的用途在于提供一种方法来基于其他输入的值计算属性值”,只有定义属性为依赖项属性,这个属性才支持样式设置,数据绑定,继承,动画和默认值. 属性对应的字段必需是公有,静态,只读的,类型为DependencyProperty.即public static readonly DependencyProperty 字段名,同时字段的命名也有规范,属性名+Property,字段在定义时,通过DependencyProperty.Register来实注册属性(只有注册了,才能

WPF的依赖属性和附加属性(用法解释较全)

转:https://www.cnblogs.com/zhili/p/WPFDependencyProperty.html 一.引言 感觉最近都颓废了,好久没有学习写博文了,出于负罪感,今天强烈逼迫自己开始更新WPF系列.尽管最近看到一篇WPF技术是否老矣的文章,但是还是不能阻止我系统学习WPF.今天继续分享WPF中一个最重要的知识点——依赖属性. 二.依赖属性的全面解析 听到依赖属性,自然联想到C#中属性的概念.C#中属性是抽象模型的核心部分,而依赖属性是专门基于WPF创建的.在WPF库实现中,

WPF 精修篇 属性动画

原文:WPF 精修篇 属性动画 属性动画 是通过 Storyboard 来改变属性值 <Rectangle x:Name="rect" Width="200" Height="200" > <Rectangle.Fill> <SolidColorBrush Color="Beige" x:Name="color"></SolidColorBrush> <

对WPF依赖项属性的理解

属性和事件是.NET抽象模型的核心部分, 而WPF中则用更高级的依赖项属性(Dependency Property)代替了原来.NET中的属性.依赖项属性主要应用于自定义元素中,用于为自定义元素注入自定义的属性. 以下是定义和注册依赖项属性的方法: //声明并注册依赖项属性 FoodProperty public static DependencyProperty FoodProperty =      DependencyProperty.Register("Food", typeo

.net 使用Json(),maxJsonLength属性设置的值问题

“使用JSON JavaScriptSerializer进行序列化或反序列化时出错.字符串的长度超过了为maxJsonLength属性设置的值” 今天业务找我说线上的国家地区都显示数字(地区ID),而不显示地区名字. 当时我觉得不太可能啊,虽然控件很老,已经替换了,还没到发布日期,但是线上的代码绝对没问题啊. 等我去看页面,才懵逼了,真的有问题,但是线上master的代码在本地附加到进程完全OK. 猜想: 1.线上JS文件有改动: 2.配置文件有改动 然后开始查看Git记录发现今天并没有上传记录

Windbg调试WPF的依赖属性

?? 我们用wndbg调试时,很多时候需要查看某个控件的依赖属性值. 比如:我们查看DataGridColumnHeader的Content依赖属性   1.我们用到的windbg的命令有:!do, !da -details, .formats  2.利用!do查看依赖对象的成员变量, 找到具体依赖属性的地址 0:000> !do 00000000039a71d8 Name:        System.Windows.Controls.Primitives.DataGridColumnHead