WPFを使用して、リアルな音量コントロールを実装する方法は何ですか?
アナログボリュームコントロールを実現するには、次の手順に従うことができます。
- WPFプロジェクトを作成し、MainWindow.xamlにSliderコントロールとTextBlockコントロールを追加します。Sliderコントロールは音量の調整に使用され、TextBlockコントロールは音量の値を表示するために使用されます。
<Slider x:Name="VolumeSlider" Minimum="0" Maximum="100" ValueChanged="VolumeSlider_ValueChanged"/>
<TextBlock x:Name="VolumeTextBlock" Text="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- MainWindow.xaml.csに、ValueChangedイベントのハンドラーを追加して、音量値を更新するようにします。
private void VolumeSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
int volume = (int)VolumeSlider.Value;
VolumeTextBlock.Text = volume.ToString();
}
- MainWindow.xamlにStyle要素を追加して、カスタムのSlider外観を作成します。
<Slider x:Name="VolumeSlider" Minimum="0" Maximum="100" ValueChanged="VolumeSlider_ValueChanged">
<Slider.Style>
<Style TargetType="Slider">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Slider">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Rectangle Grid.Column="0" Width="20" Height="20" Fill="#FF007ACC"/>
<Rectangle Grid.Column="1" Height="4" VerticalAlignment="Center" Fill="#FF007ACC" Margin="10,0,10,0"/>
<Thumb x:Name="PART_Track" Grid.ColumnSpan="2" Grid.RowSpan="3" Width="20" Height="20" Background="Transparent"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Slider.Style>
</Slider>
- プロジェクトを実行し、Sliderコントロールをドラッグすると、音量値が更新され、Sliderの外観もアナログ風に変わります。
外観をさらに美しくカスタマイズすることが可能です。