C# wpf 滑块值和文本框
C# wpf slider value and Text box
我正在使用一个文本框、滑块。我需要一些代码的帮助。我正在尝试制作一个像这样工作的程序,当我决定什么值将具有 slider 时,我将它写在文本框中,并且 slider 值会自动更新。一切都很好,但是当我尝试输入另一个值时,会显示消息 "input string was not in a correct format"。代码在:
<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);
}
尝试
<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>Text>Binding 中添加 UpdateSourceTrigger=PropertyChanged
在后面的代码中试试这个:
private void txtslider2_TextChanged(object sender, TextChangedEventArgs e)
{
string val = (txtslider2.Text != "") ? txtslider2.Text : "0";
SL2.Value = int.Parse(val);
}
我正在使用一个文本框、滑块。我需要一些代码的帮助。我正在尝试制作一个像这样工作的程序,当我决定什么值将具有 slider 时,我将它写在文本框中,并且 slider 值会自动更新。一切都很好,但是当我尝试输入另一个值时,会显示消息 "input string was not in a correct format"。代码在:
<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);
}
尝试
<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>Text>Binding 中添加 UpdateSourceTrigger=PropertyChanged
在后面的代码中试试这个:
private void txtslider2_TextChanged(object sender, TextChangedEventArgs e)
{
string val = (txtslider2.Text != "") ? txtslider2.Text : "0";
SL2.Value = int.Parse(val);
}