Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在鼠标单击时捕获progressbar值_C#_Wpf_Xaml - Fatal编程技术网

C# 在鼠标单击时捕获progressbar值

C# 在鼠标单击时捕获progressbar值,c#,wpf,xaml,C#,Wpf,Xaml,我有进度条,当我点击progressbar时,它应该得到值(点击鼠标时的progressbar) 这是progressbar的XAML <ProgressBar x:Name="seekBar" Height="21" Margin="30,36,43,0" VerticalAlignment="Top" ValueChanged="seekBar_ValueChanged" BorderBrush="#FF9B99C3" BorderThickness="2"> <P

我有进度条,当我点击progressbar时,它应该得到值(点击鼠标时的progressbar) 这是progressbar的XAML

<ProgressBar x:Name="seekBar" Height="21" Margin="30,36,43,0" VerticalAlignment="Top" ValueChanged="seekBar_ValueChanged" BorderBrush="#FF9B99C3" BorderThickness="2">
    <ProgressBar.Foreground>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FF505285" Offset="0"/>
            <GradientStop Color="#FF858AF0" Offset="1"/>
        </LinearGradientBrush>
    </ProgressBar.Foreground>
    <ProgressBar.Background>
        <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
            <GradientStop Color="White" Offset="1"/>
            <GradientStop Color="White"/>
            <GradientStop Color="#FF0F0F0F" Offset="1"/>
            <GradientStop Color="#FF326ED6" Offset="1"/>
            <GradientStop Color="#FFD1DBEE" Offset="0.491"/>
        </LinearGradientBrush>
    </ProgressBar.Background>
    <ProgressBar.Effect>
        <DropShadowEffect Opacity="0.15"/>
    </ProgressBar.Effect>
</ProgressBar>
试试这个:

private void seekBar_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    double MousePosition = e.GetPosition(seekBar).X;
    this.seekBar.Value = SetProgressBarValue(MousePosition);
}

private double SetProgressBarValue(double MousePosition)
{
    double ratio = MousePosition/seekBar.ActualWidth;
    double ProgressBarValue = ratio*seekBar.Maximum;
    return ProgressBarValue;
}
根据以下参考资料改编的代码(请参阅讨论结束时发布的代码):

试试这个:

private void seekBar_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    double MousePosition = e.GetPosition(seekBar).X;
    this.seekBar.Value = SetProgressBarValue(MousePosition);
}

private double SetProgressBarValue(double MousePosition)
{
    double ratio = MousePosition/seekBar.ActualWidth;
    double ProgressBarValue = ratio*seekBar.Maximum;
    return ProgressBarValue;
}
根据以下参考资料改编的代码(见讨论结束时发布的代码):