我已经有了这个基本的WPF,我已经为练习做了,它是一种记分应用程序,我想在文本框中输入一个数字,处理它,然后熄灭标签中的结果,但我无法弄清楚如何在c#侧访问它们。这是XAML:
<StackPanel HorizontalAlignment="Right" VerticalAlignment="Stretch">
<Label Name="PlayerName" Style="{StaticResource PlayerName}"/>
<Label Name="PlayerScore" Style="{StaticResource Score}"/>
<ScrollViewer Height="380">
</ScrollViewer>
</StackPanel>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Top">
<TextBox Name="Number" MaxLength="3" Width="160" Margin="20" FontSize="30" TextChanged="TextBox_TextChanged"></TextBox>
<Button IsDefault="True" Style="{StaticResource Golden} " Click="Button_Click">Запиши резултат</Button>
<Button Style="{StaticResource Golden}">Върни назад</Button>
</StackPanel>
我想在Number
中输入一个数字,在处理之后,我希望当前得分显示在PlayerScore
编辑:我还没有在这个C#代码上工作,如果有人能告诉我在哪里可以做更多关于这个主题的阅读,我也会很感激,这样我就可以做更多高级的事情,并能够使用其他控件。
答案 0 :(得分:1)
您可以通过在文本框中定位标签来执行此操作:
<TextBox x:Name="Number" ... />
<Label x:Name="PlayerName" Target="{Binding ElementName=Number}" ... />
通过这种方式,您无需在C#中执行任何操作即可更新标签。
要处理输入,您应该理想地使用类似MVVM(模型视图ViewModel)和绑定的东西来获取C#中的值,但是正如您刚刚学习的那样可以只编辑后面的代码。在TextBox_TextChanged
方法中,您可以通过Text
属性访问文本:
private void TextBox_TextChanged(object sender, EventArgs e)
{
var textBox = (TextBox)sender;
int score;
if (TryParse(textBox.Text, out score))
{
// Value entered was an integer, process it
}
}