无法在 C# 中向 GRID 面板添加不同的控件

Cannot add different controls to GRID panel in C#

我是 XAML 和 WPF 的新手,我无法在添加按钮后向网格添加其他类型的控件(如 TextBox 或 Label)。你能解释一下我在哪里犯了错误吗(我想这应该是新手犯的一些简单错误)。

我已经使用 Win Forms 在 C# 中创建了一个应用程序,并决定使用我以前从未使用过的 WPF 创建相同的应用程序,以便我可以学习新的东西。我不擅长 C# FYI。我在 Visual Studio 中使用 WPF 应用程序开始了新项目,为网格创建了 2 列和 4 行,并开始向其中添加一些控件。不幸的是,我无法在同一网格上制作带有按钮和其他类型控件的工作应用程序。看起来网格只允许我添加一种类型的控件,这对我来说毫无意义,而且我找不到有关此类限制的任何信息。包含简单 XAML 代码。

   <Window x:Class="AjStock_WPF_3.CSVToSQL"
    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:AjStock_WPF_3"
    mc:Ignorable="d"
    Title="CSVToSQL" Height="450" Width="800" MinHeight="200" MinWidth="250">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="120" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="50" />
        <RowDefinition Height="50" />
        <RowDefinition Height="*" />
        <RowDefinition Height="50" />
    </Grid.RowDefinitions>

    <Button Grid.Column="0" Grid.Row="0">
        <Button.Name>GetCSVFile</Button.Name>
        <Button.Content>Get CSV file</Button.Content>
        <Button.Margin>10</Button.Margin>
        <Button.VerticalContentAlignment>Center</Button.VerticalContentAlignment>
        <Button.HorizontalContentAlignment>Center</Button.HorizontalContentAlignment>
        <Button.FontWeight>Bold</Button.FontWeight>
        <Button.FontSize>14</Button.FontSize>
        <Button.BorderThickness>2</Button.BorderThickness>
    </Button>

    <TextBox Grid.Column="1" Grid.Row="0">
        <TextBox.VerticalContentAlignment>Center</TextBox.VerticalContentAlignment>
        <TextBox.HorizontalContentAlignment>Center</TextBox.HorizontalContentAlignment>
        <TextBox.Margin>10</TextBox.Margin>
    </TextBox>

</Grid>

预期结果将是 window,控件如下:

Button | TextBox  
Label | TextBox  
Button | TextBox  
Button | Button

我收到的错误:

CS0029 Cannot implicitly convert type 'System.Windows.Controls.TextBox' to 'System.Windows.Controls.Button' AjStock_WPF_3 D:\OneDrive\Microsoft Visual Studio\source\repos\AjStock_WPF_3\AjStock_WPF_3\obj\Debug\CSVToSQL.g.cs 104 Active

您需要移除

<Button.Name>GetCSVFile</Button.Name>

并替换为

<Button Grid.Column="0" Grid.Row="0" Name="GetCSVFile">

不确定为什么需要这样做,因为当文本框被删除时,只留下按钮,它会编译。这可能与 x:Name 的映射有关,但不能 100% 确定。