プログレスバーがあります。プログレスバーをクリックすると、(マウスがクリックされたプログレスバーの)値が表示されます。これがプログレスバーの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>
値が変更されると、関数C#コードが呼び出されます
private void seekBar_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
this.seekBar.Value = //what should i do here??
//how to get the value of progressbar(where mouse is clicked)
}
これを試して :
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;
}
次の参照から適合されたコード(ディスカッションの最後に投稿されたコードを参照):http://bytes.com/topic/c-sharp/answers/722714-allowing-user-click-progressbar
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加