在c#中使用Wpf文本框和标签文本访问

时间:2016-02-20 19:17:34

标签: c# wpf xaml textbox label

我已经有了这个基本的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#代码上工作,如果有人能告诉我在哪里可以做更多关于这个主题的阅读,我也会很感激,这样我就可以做更多高级的事情,并能够使用其他控件。

1 个答案:

答案 0 :(得分:1)

您可以通过在文本框中定位标签来执行此操作:

<TextBox x:Name="Number" ... />

<Label x:Name="PlayerName" Target="{Binding ElementName=Number}" ... />

MSDN Page

通过这种方式,您无需在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
    }
}