簡體   English   中英

在WPF C#中按下按鈕時如何向窗口添加新標簽

[英]How to add a new Label to the window when a button is pressed in WPF C#

我想創建一個程序,當您單擊該按鈕時,它將以新標簽的形式顯示窗口文本框中的內容

到目前為止,這是代碼的樣子

XAML

<Window x:Class="firstwpfapp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:firstwpfapp"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<Grid Margin="-120,-142,0,0" >
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0*"/>
        <ColumnDefinition Width="5*"/>
        <ColumnDefinition Width="451*"/>
    </Grid.ColumnDefinitions>
    <StackPanel x:Name="Wrapper">

    </StackPanel>

    <TextBox x:Name="input" Grid.Column="2" HorizontalAlignment="Left" Height="31" Margin="106,198,0,0" TextWrapping="Wrap" Text="Enter here" VerticalAlignment="Top" Width="166"/>
    <Button  Content="Button" Grid.Column="2" HorizontalAlignment="Left" Margin="106,234,0,0" VerticalAlignment="Top" Width="166" Height="26" Click="addTask"/>

</Grid>

C#

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 firstwpfapp
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void addTask(object sender, RoutedEventArgs e)
        {





            String val = input.GetLineText().ToString();
            Label todo = new Label();
            todo.Content = val;
            Wrapper.Children.Add(todo);



        }
    }
}

到目前為止,當我按下按鈕時,什么都沒有添加到窗口中。

會編譯嗎? 根據此處的文檔( https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.controls.textbox.getlinetext?view=netframework-4.7.2#System_Windows_Controls_TextBox_GetLineText_System_Int32_ ),方法GetLineText()需要一個要傳遞的整數參數。如果想要整個文本值,則可以使用.Text屬性。

此外,您尚未為StackPanel定義大小/位置,並且可能不可見。

此外, GetLineText(int)已經返回了一個字符串,無需調用.ToString()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM