WPF 动态布局Grid
1 //开启线程加载 2 Action a = () => 3 { 4 var row = 7; 5 var column = 9; 6 7 var path = "../../face_img/"; 8 var files = Directory.GetFiles(path); 9 for (var i = 0; i < row; i++) 10 { 11 faceGrid.RowDefinitions.Add(new RowDefinition()); 12 } 13 for (var i = 0; i < column; i++) 14 { 15 faceGrid.ColumnDefinitions.Add(new ColumnDefinition()); 16 } 17 var index = 0; 18 for (var i = 0; i < row; i++) 19 { 20 for (var j = 0; j < column; j++, index++) 21 { 22 if (index < files.Length) 23 { 24 var btn = new Button { Width = 25, Height = 25 }; 25 var image = new GifImage { Source = System.IO.Path.GetFullPath(files[index]), Stretch = Stretch.Fill }; 26 btn.Click += btn_Click; 27 image.ToolTip = "["+ System.IO.Path.GetFileName(files[index]) + "]"; 28 btn.Tag = "[" + System.IO.Path.GetFileName(files[index]) + "]"; 29 image.OpacityMask = this.Background; 30 image.Width = btn.Width-1; 31 image.Height = btn.Height-1; 32 btn.BorderBrush = Brushes.WhiteSmoke; 33 btn.Background = Brushes.White; 34 btn.Content = image; 35 Grid.SetRow(btn, i); 36 Grid.SetColumn(btn, j); 37 38 faceGrid.Children.Add(btn); 39 } 40 } 41 } 42 }; 43 this.faceGrid.Dispatcher.Invoke(a);