[WPF]二十から四章学習範囲コントロール

オリジナル: [WPF]二十から四章に基づく学習レンジコントロール

  WPFは、コントロールの範囲を使用して、3つの概念を提供します。最小値と最大値との間の特定の値を使用して、これらを制御します。これらのコントロールは--ScrollBar、プログレスバーとSlider--は(クラスはControlクラスから継承した)RangeBaseクラスから継承されます。彼らはまだ同じ抽象化(範囲)が、作業の非常に異なる方法を使用していますが、

  次の表に示し、クラスの定義には、プロパティをRangeBase:

クラス属性テーブルRangeBase

 

   ScrollBarコントロールを直接使用するよりも通常より良いです。より高度なScrollViewerの制御(2つのScrollBarコントロールをカプセル化)は通常より有用です。スライダーやプログレスバーコントロールは、彼らはしばしば一人である、より実用的です。

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のA遅延と1の間隔は、この速いスライダー作ります。
      親指のいずれかの側をクリックして押してみてください
      、マウスのボタンを。

        < スライダーマージン= "10" TickFrequency = "1" TickPlacement = "TOPLEFT"  
            最大= "10" 遅延= "0" インターバル= "1" 
          > 
        </ スライダー> 

    </ のStackPanel > 
</ ウィンドウ>
SliderTest

 

   RangeBaseクラスで定義され、Sliderコントロールの重要な属性。これらのプロパティに加えて、あなたはまた、表に記載されているすべての属性を使用することができます。

付属のスライダークラス属性テーブル

 

   下のグラフは、異なるスケールの設定Sliderコントロールの使用を比較します。

<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