C# 通过拖动滑块并单击具有不同触发器的按钮来更改滑块的值
我有三个控件:一个滑块、一个按钮和一个文本框。 我想实现的是,当我拖动滑块改变它的值时,textbox的内容会改变。textbox的内容就是滑块的值。但是,当我单击按钮时,滑块的值加1,但textbox的内容不变。textbox显示滑块的值。但只有当我通过拖动滑块更改滑块的值时,才会更改其内容。 那么,我如何在代码中实现这一点呢C# 通过拖动滑块并单击具有不同触发器的按钮来更改滑块的值,c#,wpf,slider,C#,Wpf,Slider,我有三个控件:一个滑块、一个按钮和一个文本框。 我想实现的是,当我拖动滑块改变它的值时,textbox的内容会改变。textbox的内容就是滑块的值。但是,当我单击按钮时,滑块的值加1,但textbox的内容不变。textbox显示滑块的值。但只有当我通过拖动滑块更改滑块的值时,才会更改其内容。 那么,我如何在代码中实现这一点呢 使用元素名将textbox文本属性绑定到滑块的VALUE属性 <Slider x:Name="Slider"></Slider> <T
使用元素名将textbox文本属性绑定到滑块的VALUE属性
<Slider x:Name="Slider"></Slider>
<TextBox x:Name="SliderValue" Text="{Binding ElementName=Slider, Path=Value}"></TextBox>
滑块值更改时,文本框将自动更新。是我找到解决方案的地方
我的代码是:
在Xaml中:
代码:
private bool isdragging = false;
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
mySlider.Value += 1;
}
private void mySlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (isdragging)
tboxValue.Text = mySlider.Value.ToString();
}
private void mySlider_DragStarted(object sender, System.Windows.Controls.Primitives.DragStartedEventArgs e)
{
isdragging = true;
}
private void mySlider_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e)
{
isdragging = false;
}
private bool isdragging=false;
私有无效btnAdd_单击(对象发送者,路由目标e)
{
mySlider.Value+=1;
}
私有void mySlider_值已更改(对象发送方,RoutedPropertyChangedEventArgs e)
{
if(ISDRAGING)
tboxValue.Text=mySlider.Value.ToString();
}
私有void mySlider_DragStarted(对象发送方,System.Windows.Controls.Primitives.DragStartedEventArgs e)
{
IsDraging=true;
}
私有void mySlider_DragCompleted(对象发送方,System.Windows.Controls.Primitives.dragcompletedventargs e)
{
IsDraging=错误;
}
它非常适合我。当我单击“添加”按钮时,slider的值加1,但textbox的内容无法更改。
private bool isdragging = false;
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
mySlider.Value += 1;
}
private void mySlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (isdragging)
tboxValue.Text = mySlider.Value.ToString();
}
private void mySlider_DragStarted(object sender, System.Windows.Controls.Primitives.DragStartedEventArgs e)
{
isdragging = true;
}
private void mySlider_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e)
{
isdragging = false;
}