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 > </ ウィンドウ>
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>
二、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约定,表示工作正在进行中。在应用程序的状态栏中,这种指示器非常合理。例如,可使用它指示正在连接远程服务器以便获取信息。