无法在 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% 确定。
我是 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% 确定。