[WPF] 스물 네 장 기반 학습 범위 컨트롤

원본 : [WPF] 스물 네 장 중심의 학습 범위 제어

  WPF는 제어 범위를 사용하는 세 가지의 개념을 제공한다. 최소값과 최대 값 사이의 특정 값을 이용하여 이러한 제어. 이러한 컨트롤은 --ScrollBar,의 ProgressBar 및 Slider--는 (클래스는 Control 클래스에서 상속) RangeBase 클래스에서 상속합니다. 그들은 아직 같은 추상화 (범위),하지만 작업의 매우 다른 방법을 사용하지만,

  다음 표에서는 클래스 정의는 속성을 RangeBase :

클래스 속성 테이블 RangeBase

 

   ScrollBar 컨트롤의 직접 사용하는 것보다 일반적으로 더 나은. 더 고급의 ScrollViewer 컨트롤 (두 ScrollBar 컨트롤을 캡슐화) 일반적으로 더 유용하다. 슬라이더와의 ProgressBar 컨트롤은 혼자 자주, 더 실용적입니다.

A, 슬라이더

  숫자 자체가 값을 설정하려면이 컨트롤을 사용하는 것이 특히 중요하지 않을 때, 예를 들어 - 슬라이더 컨트롤은 종종 특별한 컨트롤에 사용됩니다. 다른 예로서, 좌우로 슬라이더를 통해 상기 미디어 플레이어의 볼륨 설정, 슬라이더를 끌어 매우 합리적이다. 슬라이더의 대략적인 위치는 상대적으로 볼륨 (일반, 소량, 대량)을 나타냅니다 만, 사용자의 번호 뒤에 이해가되지 않습니다.

  다음과 같은 효과는 간단한 예제 슬라이더 :

< 윈도우 X : 종류 = "Controls.SliderTest" 
        의 xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        에 xmlns : X = "http://schemas.microsoft.com/winfx/2006 / XAML " 
        제목 ="SliderTest " 높이 ="300 " 너비 ="300 " > 
    < StackPanel에 > 
        < TextBlock의 마진 ="10 " TextWrapping ="랩 " > 
      0의 지연과 (1)의 간격이 고속 슬라이더 만든다. 
      엄지 손가락의 양쪽에 클릭하고 누른 시도 
      마우스 버튼을 클릭합니다.

        < 슬라이더 마진 = "10" TickFrequency = "1" TickPlacement = "좌상"  
            최대 = "10" 지연 = "0" 간격 = "1" 
          > 
        </ 슬라이더 > 

    </ StackPanel에 > 
</ 윈도우 >
SliderTest

 

   RangeBase 클래스에 정의 된 슬라이더 컨트롤 중요한 특성. 이러한 속성 외에도 표에 나열된 모든 속성을 사용할 수있다.

슬라이더 클래스 속성 테이블 첨부

 

   아래의 표는 서로 다른 규모 설정 슬라이더 컨트롤의 사용을 비교 :

<Window x:Class="Controls.SlidersCompared"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="SlidersCompared" Height="300" Width="408.271">
    <Grid>
        <StackPanel Margin="10">
            <TextBlock Margin="0,0,0,5">Normal Slider (Max=100, Val=10)</TextBlock>
            <Slider Maximum="100" Value="10"></Slider>
            <TextBlock Margin="0,15,0,5">Slider with Tick Marks (TickFrequency=10, TickPlacement=BottomRight)</TextBlock>
            <Slider Maximum="100" Value="10" TickFrequency="10" TickPlacement="BottomRight"></Slider>
            <TextBlock Margin="0,15,0,5">Slider with Irregular Tick Marks (Ticks=0,5,10,15,25,50,100)</TextBlock>
            <Slider Maximum="100" Value="10" Ticks="0,5,10,15,25,50,100"  TickPlacement="BottomRight"></Slider>
            <TextBlock Margin="0,15,0,5" TextWrapping="Wrap">Slider with a Selection Range (IsSelectionRangeEnabled=True, SelectionStart=25, SelectionEnd=75)</TextBlock>
            <Slider Maximum="100" Value="10" TickFrequency="10" TickPlacement="BottomRight"
                IsSelectionRangeEnabled="True" SelectionStart="25" SelectionEnd="75"></Slider>
        </StackPanel>
    </Grid>
</Window>
SlidersCompared

 

 二、ProgressBar

  ProgressBar控件指示长时间运行任务的进度。与Slider控件不同,ProgressBar控件不能与用户进行交互。反而,需要由代码递增Value属性值(从技术角度看,WPF规则建议不将ProgressBar作为控件,因为它无法响应鼠标动作和键盘输入)。ProgressBar控件具有4个设备无关单位的最小高度。如果希望看到更大、更传统的进度条,需要设置Height属性(或将它放入具有适当固定尺寸的容器中)。

  使用ProgressBar控件的通常方式是将它作为长时间运行的状态指示其,甚至可能不知道该任务需要执行多长时间。有趣的是(也很奇特),可通过将IsIndeterminate属性设置为true来完成这一工作:

<ProgressBar Height="50"  IsIndeterminate="True"></ProgressBar>

  最终效果如下图所示:

 

   当设置IsIndeterminate属性时,不再使用Minimum、Maximum和Value属性。ProgressBar控件会周期性地显示从左向右跳动的绿色脉冲,这是通用的Windows约定,表示工作正在进行中。在应用程序的状态栏中,这种指示器非常合理。例如,可使用它指示正在连接远程服务器以便获取信息。

추천

출처www.cnblogs.com/lonelyxmas/p/12285975.html