XAML和c#中的文本块/文本框

本文关键字:文本 XAML | 更新日期: 2023-09-27 18:08:40

我是一个完全的"周末战士"编程,所以请对我温柔点…

我想实现一个简单的任务,我在普通c# (TextBox)中没有问题。Text = "Something";)

我在XAML中有一个文本框和一个文本块,我想从c#中填充它们,简单得很-运行web应用程序并从c#代码中提取预定义的字符串。我已经找了2天了,找不到一个直接的答案。我不想要任何触发器(按钮),只是用c#字符串填充加载时的文本框。一个简单的XAML和c#代码示例将非常感谢!

欢呼,

莎莎

XAML和c#中的文本块/文本框

不确定我是否理解了你的问题…

<!--xaml-->
<TextBox x:Name="txtMyTextBox"/>
// C#
// Window constructor
public MyWindow()
{
    InitializeComponent();
    txtMyTextBox.Text = "Something";
}

实现您尝试实现的一个简单方法(如果我理解正确的话)是将UI元素添加到您的窗口并为每个元素设置一个Name。这样,您就可以在代码隐藏中访问它们,如下所示。

<Window x:Class="WpfApplication1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
    <Grid>
        <TextBox Name="TextBox1" HorizontalAlignment="Left" Height="23" Margin="37,37,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
        <TextBlock Name="TextBlock1" HorizontalAlignment="Left" Margin="48,100,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Height="103" Width="239"/>
    </Grid>
</Window>

当然还有更"精致"的方法来实现同样的目的,一旦你在xaml中命名了你的UI元素,你就可以像在代码后面的其他对象实例一样访问它们。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            TextBox1.Text = "Hello TextBox1!";
            TextBlock1.Text = "Hello TextBlock1!";
        }
    }
}