Невозможно добавить различные элементы управления на панель GRID в C # - PullRequest
0 голосов
/ 07 июля 2019

Я совершенно новичок в XAML и WPF и не могу добавить другой тип элемента управления (например, TextBox или Label) в сетку после добавления кнопки.Не могли бы вы объяснить, где я могу ошибиться (я полагаю, что новичок должен был сделать простую ошибку).

Я создал приложение на C # с использованием Win Forms и решил создать то же приложение с использованием WPF, которое раньше никогда не использовал, чтобы я мог узнать что-то новое.Я не хорош в C # FYI.Я начал новый проект с приложением WPF в Visual Studio, создал 2 столбца и 4 строки для сетки и начал добавлять в нее некоторые элементы управления.К сожалению, я не могу создать работающее приложение с кнопками и другим типом элемента управления в той же сетке.Похоже, что сетка позволила бы мне добавить только 1 тип элементов управления, что для меня не имеет смысла, и я не мог найти информацию о таком ограничении.Простой код 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 \ objT \ Debug.cs 104 Активный

1 Ответ

0 голосов
/ 07 июля 2019

Вам необходимо удалить

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

и заменить на

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

Не уверен, почему это необходимо, так как при удалении текстового поля, оставляя только кнопку, оно компилируется.Вероятно, это связано с отображением x: Name, но не на 100% уверен.

...