2016-09-21 20 views
0

wpfでフォームを作成しようとしていますが、整列の問題があります。Wpfフォームの整列とサイズ変更

このフォームは、異なる数の列を持つ一連の行で構成されているため、特別です。 enter image description here

私は2つの問題を持っている:ここでは

は、私がこれまでに得たものです。

1)アライメント

どのように両方の行が列のdiferent数を持って下にあれば、私はロウからのテキストボックスである行からテキストボックスを整列行います。

私はこのように位置を合わせたい:T3の右側にT3の左側及びT2の右側に enter image description here

T1の左側。 サイズ変更時にT3が伸び、T1とT2が互いに近づくはずです。

2)リサイズ

各列の高さは、親グリッドの高さ<RowDefinition Height="62*"/>の割合であると私はそのように行うならば、私はの高さを低くするときのTextBoxとラベスはVerticalAlignment="Stretch"フローティング、私は思っていますTextBoxesのフォームはお互いに近くなりますが、テキストボックスは表示されず、一部のテキストボックスが画面から切り取られます。ここで

は、XAMLコード:

<UserControl x:Class="my.Controles.Clientes.ControlVerClientes" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="750" d:DesignWidth="1900" Loaded="ControlVerClientes_Load"> 
    <Grid Background="Gold" > 
     <Grid Name="SubInterfazAdministrarClientes"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="55*" /> 
       <ColumnDefinition Width="100*" /> 
       <ColumnDefinition Width="75*" /> 
      </Grid.ColumnDefinitions> 
      <Grid Grid.Column ="0"> 
       <Grid Margin="10"> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="40"/> 
         <RowDefinition /> 
        </Grid.RowDefinitions> 
        <TextBox x:Name="TextBoxBuscarCliente" Grid.Row="0" TextChanged="TextBoxBuscarCliente_Change"/> 
        <ListBox x:Name="ListBoxBuscarClientes" Grid.Row="1" Margin="0,20,0,0" SelectionChanged="ListBoxBuscarClientes_SelectionChanged"/> 
       </Grid> 
      </Grid> 
      <Grid Grid.Column ="1"> 
       <Grid HorizontalAlignment="Stretch" Height="680" Margin="10,70,0,0" VerticalAlignment="Stretch" > 
        <Grid.RowDefinitions> 
         <RowDefinition Height="62*"/> 
         <RowDefinition Height="61*"/> 
         <RowDefinition Height="62*"/> 
         <RowDefinition Height="61*"/> 
         <RowDefinition Height="62*"/> 
         <RowDefinition Height="61*"/> 
         <RowDefinition Height="120*"/> 
         <RowDefinition Height="65*"/> 
        </Grid.RowDefinitions> 

        <Grid Grid.Row="0"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="135*"/> 
          <ColumnDefinition Width="148*"/> 
         </Grid.ColumnDefinitions> 
         <Grid Grid.Column="0"> 
          <Label Content="Nombre" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" Height="24" Width="76" /> 
          <TextBox HorizontalAlignment="Stretch" Height="24" Margin="0,0,0,0" TextWrapping="Wrap" Text="{Binding ClienteActual.Nombre}" VerticalAlignment="Stretch" Width="220" /> 
         </Grid> 
         <Grid Grid.Column="1"> 
          <Label Content="Apellido" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch"/> 
          <TextBox HorizontalAlignment="Stretch" Height="24" Margin="0,0,0,0" TextWrapping="Wrap" Text="{Binding ClienteActual.Apellido}" VerticalAlignment="Stretch" Width="220"/> 
         </Grid> 
        </Grid> 

        <Grid Grid.Row="1"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="135*"/> 
          <ColumnDefinition Width="148*"/> 
         </Grid.ColumnDefinitions> 
         <Grid Grid.Column="0"> 
          <Label Content="Documento" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch"/> 
          <TextBox HorizontalAlignment="Stretch" Height="22" Margin="0,0,0,0" TextWrapping="Wrap" Text="{Binding ClienteActual.Documento}" VerticalAlignment="Stretch" Width="220"/> 
         </Grid> 
         <Grid Grid.Column="1"> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition /> 
           <ColumnDefinition /> 
          </Grid.ColumnDefinitions> 

          <Grid Grid.Column="0"> 
           <Label Content="Descuento Fijo" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" Width="124"/> 
           <TextBox HorizontalAlignment="Stretch" Height="23" Margin="0,0,0,0" TextWrapping="Wrap" Text="0" VerticalAlignment="Stretch" Width="150" PreviewTextInput="TextboxValidacionNumerica"/> 
           <Label Content="%" HorizontalAlignment="Stretch" Margin="130,0,0,0" VerticalAlignment="Stretch" Height="23" Width="19" RenderTransformOrigin="0.395,0.294" Background="Transparent"/> 
          </Grid> 
          <Grid Grid.Column="1"> 
           <Label Content="Estado" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" Width="124"/> 
           <ComboBox HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="23" Width="150" Text="{Binding Estado}" DisplayMemberPath="Estado" /> 
          </Grid> 
         </Grid> 
        </Grid> 


        <Grid Grid.Row="2"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="135*"/> 
          <ColumnDefinition Width="148*"/> 
         </Grid.ColumnDefinitions> 
         <Grid Grid.Column="0"> 
          <Label Content="Telefono 1" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" Height="23"/> 
          <TextBox HorizontalAlignment="Stretch" Height="23" Margin="0,0,0,0" TextWrapping="Wrap" Text="{Binding ClienteActual.Telefono1}" VerticalAlignment="Stretch" Width="220"/> 
         </Grid> 
         <Grid Grid.Column="1"> 
          <Label Content="Telefono 2" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" Height="23"/> 
          <TextBox HorizontalAlignment="Stretch" Height="24" Margin="0,0,0,0" TextWrapping="Wrap" Text="{Binding ClienteActual.Telefono2}" VerticalAlignment="Stretch" Width="220"/> 
         </Grid> 
        </Grid> 

        <Grid Grid.Row="3"> 
         <Label Content="Email" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" Height="23"/> 
         <TextBox HorizontalAlignment="Stretch" Height="24" Margin="0,0,0,0" TextWrapping="Wrap" Text="{Binding ClienteActual.Email}" VerticalAlignment="Stretch" Width="578"/> 
        </Grid> 

        <Grid Grid.Row="4"> 
         <Label Content="Direccion" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch"/> 
         <TextBox HorizontalAlignment="Stretch" Height="22" Margin="0,0,0,0" TextWrapping="Wrap" Text="{Binding ClienteActual.Direccion}" VerticalAlignment="Stretch" Width="578"/> 
        </Grid> 


        <Grid Grid.Row="5"> 
         <Label Content="Hotel/Habitacion" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch"/> 
         <TextBox HorizontalAlignment="Stretch" Height="22" Margin="0,0,0,0" TextWrapping="Wrap" Text="{Binding ClienteActual.Hotel_Habitacion}" VerticalAlignment="Stretch" Width="578"/> 
        </Grid> 

        <Grid Grid.Row="6"> 
         <Label Content="Contacto" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" Width="138"/> 
         <TextBox HorizontalAlignment="Stretch" Height="96" Margin="0,0,0,0" TextWrapping="Wrap" Text="{Binding ClienteActual.Contacto}" VerticalAlignment="Stretch" Width="578"/> 
        </Grid> 
        <Grid Grid.Row="7"> 
         <Label Content="{Binding ClienteActual.InfoCreacion}" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" Width="578"/> 
        </Grid> 


       </Grid> 

      </Grid> 
     </Grid> 
    </Grid> 
</UserControl> 

また、あなたがこれを行うには良い方法を知っていれば、私はそれを聞くのが大好きです。 ありがとうございます!このため

答えて

0

1.アライメント

、あなたは、Widthを削除HorizontalAlignment = Strecthを設定し、T2、T3の右マージンを一致させる必要があります。

2.推奨レイアウト

<Window ...> 
    <Grid Background="Gold" > 
     <Grid Name="SubInterfazAdministrarClientes"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="34*" /> 
       <ColumnDefinition Width="102*" /> 
       <ColumnDefinition Width="37*" /> 
      </Grid.ColumnDefinitions> 
      <Grid Grid.Column ="0"> 
       <Grid Margin="10"> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="40"/> 
         <RowDefinition /> 
        </Grid.RowDefinitions> 
        <TextBox x:Name="TextBoxBuscarCliente" Grid.Row="0" /> 
        <ListBox x:Name="ListBoxBuscarClientes" Grid.Row="1" Margin="0,20,0,0" /> 
       </Grid> 
      </Grid> 
      <Grid Grid.Column ="1"> 
       <Grid HorizontalAlignment="Stretch" Height="680" Margin="10,70,0,0" VerticalAlignment="Stretch" > 
        <Grid.RowDefinitions> 
         <RowDefinition Height="62*"/> 
         <RowDefinition Height="61*"/> 
         <RowDefinition Height="62*"/> 
         <RowDefinition Height="61*"/> 
         <RowDefinition Height="62*"/> 
         <RowDefinition Height="61*"/> 
         <RowDefinition Height="120*"/> 
         <RowDefinition Height="65*"/> 
        </Grid.RowDefinitions> 

        <Grid Grid.Row="0"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="135*"/> 
          <ColumnDefinition Width="148*"/> 
         </Grid.ColumnDefinitions> 
         <Grid Grid.Column="0"> 
          <StackPanel Margin="10"> 
           <Label Content="Nombre"/> 
           <TextBox TextWrapping="Wrap" Text="{Binding ClienteActual.Nombre}"/> 
          </StackPanel> 
         </Grid> 
         <Grid Grid.Column="1"> 
          <StackPanel Margin="10"> 
           <Label Content="Apellido" /> 
           <TextBox HorizontalAlignment="Stretch" TextWrapping="Wrap" Text="{Binding ClienteActual.Apellido}"/> 
          </StackPanel> 
         </Grid> 
        </Grid> 

        <Grid Grid.Row="1"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="135*"/> 
          <ColumnDefinition Width="148*"/> 
         </Grid.ColumnDefinitions> 
         <Grid Grid.Column="0"> 
          <StackPanel Orientation="Vertical" Margin="10"> 
           <Label Content="Documento" /> 
           <TextBox TextWrapping="Wrap" Text="{Binding ClienteActual.Documento}"/> 
          </StackPanel> 
         </Grid> 
         <Grid Grid.Column="1"> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="108*" /> 
           <ColumnDefinition Width="91*" /> 
          </Grid.ColumnDefinitions> 

          <Grid Grid.Column="0"> 
           <StackPanel Orientation="Vertical" Margin="10"> 
            <Label Content="Descuento Fijo"/> 
            <TextBox TextWrapping="Wrap" Text="0" /> 
            <Label Content="%" Background="Transparent" /> 
           </StackPanel> 
          </Grid> 
          <Grid Grid.Column="1"> 
           <StackPanel Margin="10"> 
            <Label Content="Estado" /> 
            <ComboBox Text="{Binding Estado}" DisplayMemberPath="Estado" /> 
           </StackPanel> 
          </Grid> 
         </Grid> 
        </Grid> 

        <Grid Grid.Row="2"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="135*"/> 
          <ColumnDefinition Width="148*"/> 
         </Grid.ColumnDefinitions> 
         <Grid Grid.Column="0"> 
          <StackPanel Orientation="Vertical" Margin="10"> 
           <Label Content="Telefono 1" /> 
           <TextBox TextWrapping="Wrap" Text="{Binding ClienteActual.Telefono1}" /> 
          </StackPanel> 
         </Grid> 
         <Grid Grid.Column="1"> 
          <StackPanel Margin="10"> 
           <Label Content="Telefono 2"/> 
           <TextBox Text="{Binding ClienteActual.Telefono2}"/> 
          </StackPanel> 
         </Grid> 
        </Grid> 

        <Grid Grid.Row="3"> 
         <StackPanel Margin="10"> 
          <Label Content="Email" DockPanel.Dock="Left" /> 
          <TextBox DockPanel.Dock="Left" TextWrapping="Wrap" Text="{Binding ClienteActual.Email}" /> 
         </StackPanel> 
        </Grid> 

        <Grid Grid.Row="4"> 
         <StackPanel Margin="10"> 
          <Label Content="Direccion" /> 
          <TextBox TextWrapping="Wrap" Text="{Binding ClienteActual.Direccion}" /> 
         </StackPanel> 
        </Grid> 

        <Grid Grid.Row="5"> 
         <StackPanel Margin="10"> 
          <Label Content="Hotel/Habitacion"/> 
          <TextBox TextWrapping="Wrap" Text="{Binding ClienteActual.Hotel_Habitacion}" /> 
         </StackPanel> 
        </Grid> 

        <Grid Grid.Row="6"> 
         <StackPanel Margin="10"> 
          <Label Content="Contacto"/> 
          <TextBox Height="96" TextWrapping="Wrap" Text="{Binding ClienteActual.Contacto}"/> 
         </StackPanel> 
        </Grid> 

        <Grid Grid.Row="7"> 
         <Label Content="{Binding ClienteActual.InfoCreacion}" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" Width="578"/> 
        </Grid> 

       </Grid> 

      </Grid> 
     </Grid> 
    </Grid> 
</Window> 

あなたはウィンドウのサイズを変更すると、行の高さが意志を形成する下にいくつかの意味の高さがなければならないので、行うための最善のことではないかもしれないこと、崩壊したい場合役に立たなくなる。 MinHeight値で試すことができます。

関連する問題