2012-04-12 7 views
4

Neu bei WPF und learing durch Online-Tutorials und haben ein paar Fragen zu haben:mehrere Steuerelemente in einer WPF Rasterzelle

(1) ich mehrere Tasten unterschiedlicher Breite erscheinen nebeneinander in einer WPF zu haben, ich versuche, Gitterzelle. Sie scheinen sich jedoch immer aufeinander zu stapeln. Was verpasse ich?

(2) Ist es möglich, die absolute linke Startposition für jede Taste innerhalb der Gitterzelle zu steuern?

Danke.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > 
<ScrollViewer> 
    <Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      ShowGridLines ="True" > 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="200" /> 
      <ColumnDefinition Width="Auto" /> 
      <ColumnDefinition Width="60*" /> 
     </Grid.ColumnDefinitions> 

     <Button Content="Button No. 1" Grid.Row="0" Grid.Column="0" /> 

     <GridSplitter HorizontalAlignment="Center" Width="6" 
         Grid.Row="0" Grid.Column="1" Grid.RowSpan="3" /> 

     <Button Content="Button No. 4-2" Grid.Row="0" Grid.Column="2" Width="100" /> 
     <Button Content="Button No. 4-1" Grid.Row="0" Grid.Column="2" Width="50" /> 

    </Grid> 
</ScrollViewer> 
</Page> 

Basierend auf der Antwort von Salvador, das funktioniert:

 <Button VerticalAlignment="Top" HorizontalAlignment="Left" Content="Button No. 1" Grid.Row="0" Grid.Column="0" Height="100"/> 

     <GridSplitter HorizontalAlignment="Center" Width="6" 
         Grid.Row="0" Grid.Column="1" Grid.RowSpan="3" /> 

     <Button VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0" Content="Button No. 4-2" Grid.Row="0" Grid.Column="2" Height="100" Width="100" /> 
     <Button VerticalAlignment="Top" HorizontalAlignment="Left" Margin="400,0,0,0" Content="Button No. 4-1" Grid.Row="0" Grid.Column="2" Height="150" Width="50" /> 

Dank!

Antwort

4

Sie setzen die VerticalAlignment oder die HorizontalAlignment Eigenschaft nicht, daher sind sie standardmäßig zentriert.

Sie müssen diese Eigenschaften festlegen und in Kombination mit der Margin-Eigenschaft von wpf-Elementen verwenden.

Werfen Sie einen Blick auf diese Introduction to WPF Layout

+0

Perfect, funktioniert genau so, wie ich wollte: – Shawn

6

Sie können eine der Container Controls (wie ein Canvas, DockPanel, StackPanel) in der Startposition (Row # + Spalte #) verwenden möchten, und dann die Steuerelemente in diesem Ort.

Dies macht es viel einfacher, mehr als ein Steuerelement in einer einzigen Rasterposition zu platzieren.

Verwandte Themen