相关文章推荐
干练的罐头  ·  数学建模 - 知乎·  1 年前    · 
爱健身的红烧肉  ·  c++ ...·  1 年前    · 

【C# .NET】WPF (八) 常用控件 之 范围控件(RangeControls)

WPF常用控件

WPF 的所有控件都是从 System.Windows.Controls.Control 类中派生出来,其命名空间是System.Windows.Controls 。

WPF有两个类似的类继承树,一个与界面( UI )相关,如 UIElement 类;另一个与内容( Content )相关,如 ContentElement。

ContentElement 支持文本方式,而 UIElement 则支持图形方式。

Control 类中派生出来的控件,基本上可以分为4类:

  1. 内容控件(ContentControls)
  2. 条目控件(ItemsControls)
  3. 文本控件(TextControls)
  4. 范围控件(RangeControls)

范围控件(RangeControls)的继承树:


8. 范围控件(RangeControls)

1)范围控件包括 :

1.ScrollBar(滚动条)

2.ProgressBar(滑动条)

3.SlideBar(进度条)

2)它们都是从同一个基类 RangeBase 中派生出来。

属性 描述
Maximum 获取或设置最大取值范围
Minimum 获取或设置最小取值范围
LargeChange 获取或设置最大变化单位
SmallChange 获取或设置最小变化单位
Value 获取或设置当前值

8.1 滚动条(ScrollBar)

滚动条(ScrollBar)为可滚动控件,该滚动条具有一个滑块,其位置对应于一个值。

属性 描述
Orientation 获取或设置滚动方向
ViewportSize 获取或设置当前可见的可滚动内容的数量

XAML代码:

    <StackPanel Margin="10">
        <ScrollBar x:Name="scrollbar" Maximum="100" Minimum="0" Value="30" 
                   LargeChange="20" SmallChange="2" Height="20" Margin="10,20"
                   Orientation="Horizontal"/>
        <Grid Margin="10">
            <Label Foreground="White" FontSize="30" VerticalAlignment="Center">ScrollBar:</Label>
            <TextBlock HorizontalAlignment="Center" Foreground="LightGreen" FontSize="50"
                       Text="{Binding ElementName=scrollbar,Path=Value}"/>
        </Grid>
    </StackPanel>

8.2 滑动条(Slider)

滑动条(Slider)是一个边上带有刻度的范围控件

属性 描述
IsSnapToTickEnabled 获取或设置是否自动将滑块移动到最近的刻度线
AutoToolTipPrecision 获取或设置 Value 的小数点右侧显示的小数位数
Ticks 获取或设置刻度线的位置
TickPlacement 获取或设置与 Track 的 Slider 相关的刻度线的位置
IsSelectionRangeEnabled 获取或设置一个值,该值指示 Slider 是否沿 Slider 显示选择范围
IsMoveToPointEnabled 获取或设置一个值,该值指示是否立即将 Slider 的 Thumb 移动到在鼠标指针悬停在 Slider 轨道的上方时鼠标单击的位置
SelectionEnd 获取或设置 Slider 的指定选择内容的最大值

XAML代码:

    <StackPanel Margin="10">
        <Slider Name="RectangleHeight" Margin="10" Width="450" Orientation="Horizontal"
                Value="20" Minimum="0" Maximum="500" SmallChange="2" LargeChange="20"
                TickPlacement="BottomRight" TickFrequency="10"/>
        <Rectangle Fill="LightBlue" HorizontalAlignment="Left" Margin="10"