0

我对 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>

预期的结果将是一个带有如下控件的窗口:

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

我收到的错误:

CS0029 无法将类型“System.Windows.Controls.TextBox”隐式转换为“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 主动

4

1 回答 1

0

你需要删除

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

并替换为

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

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

于 2019-07-07T15:55:19.440 回答