Добавить панель стека под сеткой - PullRequest
0 голосов
/ 27 июня 2018

У меня есть простая форма. Я хочу добавить панель стека (которая содержит кнопку) под сеткой. Я добавил изображение того, чего я пытаюсь достичь

Мой код:

<Window x:Class="CardReader.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:CardReader"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Grid Margin="0,0,3.4,-0.2">
    <Grid.RowDefinitions >
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" MinWidth="146.4" />
        <ColumnDefinition Width="Auto" MinWidth="244.8" />
    </Grid.ColumnDefinitions>

    <Label Grid.Row="0" Grid.Column="0" Content="Name" Margin="0,0,36.2,0.4" />
    <TextBox Grid.Row="0" Grid.Column="1" IsReadOnly="True" Margin="6.8,0,-21.2,0.4"/>


    <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
        BorderBrush="Black" BorderThickness="1"  Grid.Row="2">
        <StackPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
            <Button VerticalAlignment="Bottom" Content="Save" Height="19"/>
        </StackPanel>
    </Border>
</Grid>

Результат, который я получаю прямо сейчас, состоит в том, что кнопка находится в сетке в строке 1 в столбце 0. Я хочу кнопку в нижней части, и чтобы заполнить все по ширине, как вы видите на изображении

Чего я пытаюсь достичь enter image description here

Как это выглядит в данный момент, а это не то, что я хочу

enter image description here

Ответы [ 3 ]

0 голосов
/ 27 июня 2018

Поскольку кажется, что вам нужны два столбца с именами свойств и полями для их заполнения, я рекомендую вам:

<Grid >
    <Grid.RowDefinitions >
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"  />

    </Grid.ColumnDefinitions>

    <StackPanel>

        <!-- Copy this block for adding new lines -->
        <StackPanel Orientation="Horizontal" Margin="0,0,0,5">
            <Label Content="Name" Width="100"/>
            <TextBox IsReadOnly="True"  Width="400"/>
        </StackPanel>

        <StackPanel Orientation="Horizontal" Margin="0,0,0,5">
            <Label Content="Surname" Width="100"/>
            <TextBox IsReadOnly="True"  Width="400"/>
        </StackPanel>

        <StackPanel Orientation="Horizontal" Margin="0,0,0,5">
            <Label Content="Whatever" Width="100"/>
            <TextBox IsReadOnly="True"  Width="400"/>

        </StackPanel>

    </StackPanel>

    <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
    BorderBrush="Black" BorderThickness="1"  Grid.Row="2" Grid.ColumnSpan="2" >
        <Grid>
            <Button VerticalAlignment="Bottom"  Content="Save" Height="19"/>
        </Grid>
    </Border>
</Grid>
0 голосов
/ 27 июня 2018
<Window x:Class="CardReader.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:CardReader"
  mc:Ignorable="d"
 Title="MainWindow" Height="350" Width="525">
  <Grid Margin="0,0,3.4,-0.2">
  <Grid.RowDefinitions >
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" MinWidth="146.4" />
    <ColumnDefinition Width="Auto" MinWidth="244.8" />
  </Grid.ColumnDefinitions>

  <Label Grid.Row="0" Grid.Column="0" Content="Name" Margin="0,0,36.2,0.4" />
  <TextBox Grid.Row="0" Grid.Column="1" IsReadOnly="True" Margin="6.8,0,-21.2,0.4"/>


  <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
    BorderBrush="Black" BorderThickness="1"  Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
    <StackPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
        <Button VerticalAlignment="Bottom" Content="Save" Height="19"/>
    </StackPanel>
  </Border>
</Grid>
0 голосов
/ 27 июня 2018
<Window x:Class="CardReader.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:CardReader"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="50" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <StackPanel>
        <Border Margin="5">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <TextBlock Text="Name" />
                <TextBox Grid.Column="1" />
            </Grid>
        </Border>
        <Border Margin="5">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <TextBlock Text="Father Name" />
                <TextBox Grid.Column="1" />
            </Grid>
        </Border>
    </StackPanel>

    <Border
        Grid.Row="0"
        Width="1"
        Margin="0,0,15,0"
        HorizontalAlignment="Center"
        Background="Gray" />
    <Button Grid.Row="1" Content="Save" Margin="20 5"/>
</Grid>

...