在XAML中更改Slider的值会引发异常

时间:2013-02-07 14:50:06

标签: c# .net wpf xaml exception

我有一个WPF的问题:我想在我的XAML中使用一个默认值的滑块但是当我这样做时,会抛出异常:

An unhandled exception of type 'System.Reflection.TargetInvocationException' occurred in PresentationFramework.dll

这是我的代码:

<Slider Height="23" HorizontalAlignment="Center" Name="sliderVolume" VerticalAlignment="Top" Width="66" Grid.Row="2" ValueChanged="volume_ValueChanged" Margin="598,35,12,0" Value="100"/>

这是我的代码是.cs:

private void volume_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    mediaElement.Volume = sliderVolume.Value;
}

没有默认值

Value"100"

有效!

3 个答案:

答案 0 :(得分:1)

我没有看到定义的最小值和最大值。您的“默认”值可能超出范围。

答案 1 :(得分:1)

MediaElement volume property以0到1之间的线性标度表示。

尝试:

mediaElement.Volume = sliderVolume.Value / 10;

答案 2 :(得分:1)

根据MSDN。允许的最大音量为1。

  

媒体的音量以0到1之间的线性标度表示   默认值为0.5。

所以你需要像这样设置滑块:

<Slider Value="0.5" Minimum="0" Maximum="1" Height="23" HorizontalAlignment="Center"
Name="sliderVolume" VerticalAlignment="Top" Width="66" Grid.Row="2"
ValueChanged="volume_ValueChanged" Margin="598,35,12,0" />

代码:

private void volume_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> args)
      {
         mediaElement.Volume = (double)sliderVolume.Value;
      }