C#wpf滑块值和文本框

时间:2015-03-31 13:28:33

标签: c# wpf textbox slider

我正在使用一个文本框,滑块。我需要一些代码的帮助。我正在尝试制作一个像这样工作的程序,当我决定哪个值有滑块时,我在文本框中写入,并自动更新滑块值。一切都很好,但是当我尝试放入另一个值时,则显示消息"输入字符串格式不正确"。代码在:

<Slider Margin="0,10,0,0" TickPlacement="BottomRight" TickFrequency="10" Name="SL2" Minimum="0" Maximum="100"/>
<TextBox Name="txtslider2" Height="30" Width="150" Margin="45,10,0,0" TextChanged="txtslider2_TextChanged" />
<Label Name="lblslider2" Content= Slider II" Height="30" Width="130" Margin="-220,-30,10,0"/>



private void txtslider2_TextChanged(object sender, TextChangedEventArgs e)
{
  SL2.Value = SL2.Value + int.Parse(txtslider2.Text);
}

2 个答案:

答案 0 :(得分:1)

尝试

<StackPanel>
<Slider x:Name="SL2" Minimum="0" Maximum="100" Value="{Binding ElementName=txtslider2, Path=text}" />
<TextBox x:Name="txtslider2" Text="{Binding ElementName=SL2, Path=Value, UpdateSourceTrigger=PropertyChanged}"/>
<Label Content="Slider II"/>
</StackPanel>

并删除txtslider2_TextChanged函数

UPD1:在TextBox中添加UpdateSourceTrigger = PropertyChanged&gt; Text&gt; Binding

答案 1 :(得分:0)

在后面的代码中尝试此操作:

 private void txtslider2_TextChanged(object sender, TextChangedEventArgs e)
            {                
                    string val = (txtslider2.Text != "") ? txtslider2.Text : "0";
                    SL2.Value = int.Parse(val);                
            }