how to get raster Kinder durch Ihre Zeile und Spalte in wpf?
<Grid x:Name="LayoutRoot" HorizontalAlignment="Center" VerticalAlignment="Center" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Button Width="150" Height="50" x:Name="Btn1" Content="Button1" Grid.Row="0" Grid.Column="0"/>
<Button Width="150" Height="50" x:Name="Btn2" Content="Button2" Grid.Row="0" Grid.Column="1"/>
<Button Width="150" Height="50" x:Name="Btn3" Content="Button3" Grid.Row="2" Grid.Column="0"/>
<Button Width="150" Height="50" x:Name="Btn4" Content="Button4" Grid.Row="2" Grid.Column="1"/>
</Grid>
C# - code in wpf
Visual childVisual = (Visual)VisualTreeHelper.GetChild(LayoutRoot,0);
Mit obigen code bekomme ich das Erste Kind des Rasters(LayoutRoot-Element).Aber ich will mir grid Kind, indem es Zeilen oder Spalten. Was soll ich tun.
Vielen Dank im Voraus.
Sie sollten in der Regel nicht verwenden Sie den
VisualTreeHelper
überhaupt.InformationsquelleAutor Chandru A | 2012-08-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Filter der
Grid.Children
basierend auf dem, was"Raster".GetRow
undGetColumn
gibt für jedes Kind.z.B.
Sehen Sie das Beispiel? In jedem Fall sind Sie wahrscheinlich etwas falsch machen, wenn Sie brauchen, um zu finden, die UI-Elemente im code muss wahrscheinlich mehr Datenbindung und Befehle.
var itemsInFirstRow = LayoutRoot.Kinder.Wo(ich => Raster.GetRow(i) == 0); Es zeigt Fehler.
Sie würde haben schreiben
LayoutRoot.Children.Cast<UIElement>().Where(i => Grid.GetRow(i) == 0)
.Ich Stimme mit H. B. Das ist kein guter Ansatz. Was passiert, wenn später eine Zeile oder Spalte Hinzugefügt oder entfernt aus dem Netz. Würden Sie oder ein anderer Entwickler merken oder zu wissen, zu gehen, zu ändern, die hart codierte Zahl?
InformationsquelleAutor H.B.