2010-11-28 10 views
0

ボタン、テキストボックス、イメージで10×10のグリッドが塗りつぶされていますが、それぞれが単一のセルにまたがり、決して混ざり合わない、特定のオブジェクトを参照したいセル内のボタンの内容を変更する(行、列)など、セルのプロパティの1つを変更します。グリッド位置に含まれるオブジェクトへの参照

は、ここに私のXAMLの短い例です:

<Grid x:Name="Minas" Margin="-2,115,3,33" Width="450" Height="450" MaxHeight="450" MaxWidth="450" MinWidth="450" MinHeight="450" d:IsLocked="True"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="10*"/> 
       <RowDefinition Height="10*"/> 
       <RowDefinition Height="10*"/> 
       <RowDefinition Height="10*"/> 
       <RowDefinition Height="10*"/> 
       <RowDefinition Height="10*"/> 
       <RowDefinition Height="10*"/> 
       <RowDefinition Height="10*"/> 
       <RowDefinition Height="10*"/> 
       <RowDefinition Height="10*"/> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="10*"/> 
       <ColumnDefinition Width="10*"/> 
       <ColumnDefinition Width="10*"/> 
       <ColumnDefinition Width="10*"/> 
       <ColumnDefinition Width="10*"/> 
       <ColumnDefinition Width="10*"/> 
       <ColumnDefinition Width="10*"/> 
       <ColumnDefinition Width="10*"/> 
       <ColumnDefinition Width="10*"/> 
       <ColumnDefinition Width="10*"/> 
      </Grid.ColumnDefinitions> 
      <Button Content="" Margin="-12,-12,0,-13" Width="69" HorizontalAlignment="Left" BorderThickness="2" Padding="0" Click="descubrirMina" Background="#00E53E3E" /> 
      <Button Content="" Margin="-12,-12,0,-13" Width="69" HorizontalAlignment="Left" BorderThickness="2" Background="{x:Null}" Padding="0" Grid.Column="1" Click="descubrirMina"/> 
      <Button Content="" Margin="-12,-12,0,-13" Width="69" HorizontalAlignment="Left" BorderThickness="2" Background="{x:Null}" Padding="0" Grid.Column="3" Click="descubrirMina"/> 
      <Button Content="" Margin="-12,-12,0,-13" Width="69" HorizontalAlignment="Left" BorderThickness="2" Background="{x:Null}" Padding="0" Grid.Column="2" Click="descubrirMina"/> 
      <Button Content="" Margin="-12,-12,0,-13" Width="69" HorizontalAlignment="Left" BorderThickness="2" Background="{x:Null}" Padding="0" Grid.Column="4" Click="descubrirMina"/> 
      <Button Content="" Margin="-12,-12,0,-13" Width="69" HorizontalAlignment="Left" BorderThickness="2" Background="{x:Null}" Padding="0" Grid.Column="5" Click="descubrirMina"/> 
      <Button Content="" Margin="-12,-12,0,-13" Width="69" HorizontalAlignment="Left" BorderThickness="2" Background="{x:Null}" Padding="0" Grid.Column="6" Click="descubrirMina"/> 
      <Button Content="" Margin="-12,-12,0,-13" Width="69" HorizontalAlignment="Left" BorderThickness="2" Background="{x:Null}" Padding="0" Grid.Column="8" Click="descubrirMina"/> 
      <Button Content="" Margin="-12,-12,0,-13" Width="69" HorizontalAlignment="Left" BorderThickness="2" Background="{x:Null}" Padding="0" Grid.Column="9" Click="descubrirMina"/> 
      <Button Content="" Margin="-12,-12,0,-13" Width="69" HorizontalAlignment="Left" BorderThickness="2" Background="{x:Null}" Padding="0" Grid.Column="7" Click="descubrirMina"/> 

Thxを。

+0

この例では、ボタンのスタイルを使用することをお勧めします。また、コードビハインドでボタンを作成する方がはるかに拡張性があります。 –

+0

どうすればいいですか? o.0 –

+0

var b =新しいボタン(); Minas.Children.Add(b); Grid.SetRow(b、i); Grid.SetColumn(b、j); –

答えて

0

私はこの問題を解決する方法を知りたいと思うかもしれないので、自分自身で答えを見つけました。列と行の定義が必要なXAMLでグリッドをデカールするだけでした。私は必要なXとYのプロパティ、次に、私はちょうどこのオブジェクトの配列を作成し、私は必要なプロパティ(サイズ、スパンなど)をプログラムで定義し、それらを配置しました:myGrid.Children.Add(オブジェクト)グリッドを表示したかったので、この "ボタン"のプロパティを変更したりアクセスしたりする必要があるときは、いつでも私の配列とボイラーにアクセスしました!

0

適切な名前を付けて、コードで参照することができます。

startButtonIn1row3col.Content = "start"; 

ところで10x10グリッドが電話画面にあまりにも多すぎないとお考えですか?

+0

本当ですか?私は、Grid.GetColumn((Button)sender)を使って、ボタンが押された列を取得していましたが、似たような方法を探していましたが、感謝しています。そして、いいえ、私はグリッドをテストして、それは良い、良いとは言えませんが、それは使用可能なよりも優れています –

関連する問題