2016-10-06 4 views
0

キャンバスにグリッドを追加し、四角形の中に入れたいと思います。ここでキャンバスにControls.Gridを追加する方法

私のコード

 Grid gridForModules = new Grid();  
     Canvas.SetLeft(gridForModules, 600); 
     Canvas.SetTop(gridForModules, 80); 
     AddRowsOfGrid(gridForModules, 5); 
     AddColumnsOfGrid(gridForModules, 8); 
     gridForModules.ShowGridLines = true; 
     m_grid.RegisterName("ModulesGRID", gridForModules); 
     m_canvas.Children.Add(gridForModules); 


     Rectangle rect = new Rectangle(); 
     Grid.SetColumn(rect, 2); 
     Grid.SetRow(rect, 2); 
     Grid.SetRowSpan(rect, 2); 
     Grid.SetColumnSpan(rect, 2); 
     rect.Fill = new SolidColorBrush(Colors.Coral); 
     rect.Name = "ModuloEsempio"; 
     gridForModules.Children.Add(rect); 
     m_grid.RegisterName(rect.Name, rect); 

おかげ

+0

コードを使用すると、正確には期待どおりに機能しません。 – haindl

+0

グリッドの線が表示されず、矩形が表示されません。 – fede186

+0

あなたのコードは私のテストでうまくいくようです。 'AddRowsOfGrid'にRowDefinitionsの' Height'を、 'AddColumnsOfGrid'にColumnDefinitionsの' Width'を設定しましたか?はいの場合、そのメソッドのコードを投稿できますか? (グリッドは 'SetLeft'が' 600'のため、少し右にあることに注意してください) – haindl

答えて

1

あなたはグリッドの列/行は、両方のnew GridLength(1.0, GridUnitType.Star)を設定することで、高/同じ幅であることを指定します。したがって、5行の場合、各行の高さはグリッドの高さを5で割ったものになります。

コードの問題は、グリッドが高さや幅を持たないことです。内容を整理していない抽選盤。あなたの問題を解決するために

あなたのどちらかが

gridForModules.Width = 300; 
gridForModules.Height = 200; 

またはあなたがあなたが表示されるはず列/ RowDefinitionsでその後

col.Width = new GridLength(30); 
row.Height = new GridLength(30); 

それを設定する必要がありますを使用して、グリッド上のサイズを設定する必要がありますグリッドとあなたの長方形(あなたが少し遠くに見える場合)。

+0

今、おかげです。 – fede186

+0

ようこそ。 :-) – haindl

関連する問題