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);

layout

WPF 动态布局Grid

时间: 2024-10-13 16:57:30

WPF 动态布局Grid的相关文章

WPF实现界面动态布局

以前总觉得动态布局是个很麻烦的问题,是个很需要功力的问题.但是貌似在.NET中,在WPF中却不是那么的麻烦.下面介绍我现在实现的一个动态布局的实例. 因为有需求,所以困难得克服!而我们的需求表名,不同的用户需要的界面元素是不一样的,我们总不能每次都去修改代码吧!所以,需要完成动态布局. 这里主要完成这样一个功能: 1.动态画线 2.动态new控件 3.线和控件都是可拖拽并随意放置位置的 4.线和控件是可删除的 5.控件是可绑定属性和事件的 要完成这样的功能,我们首先得定义三个鼠标事件,即:左键d

WPF界面布局——各种控件

Grid是最常用的动态布局控件,也是所有动态布局控件中唯一可按比例动态调整分配空间的控件. label : 标签,用来显示文本内容.可以为其他控件如文本框等添加一些描述性的信息. TextBox : 文本框,用于显示或编辑纯文本字符. Button:按钮,允许用户通过单击来执行操作.即可显示文本,又可显示图像.

WPF动态加载3D&nbsp;放大-旋转-平移

原文:WPF动态加载3D 放大-旋转-平移 WavefrontObjLoader.cs 第二步:ModelVisual3DWithName.cs public class ModelVisual3DWithName:ModelVisual3D { public string Name { get; set; } public object Tag { get; set; } } 第三步:MainWindow.xmal <Grid x:Name="lay"> <View

Wpf之布局

上一章大家有了自己的一个Hello World的wpf程序,今天咱们就一起走进WPF,一起来看看wpF的前台xaml这门语言的魅力. 写过web 的人都知道布局这个概念,在web中布局和样式是靠div+CSS来完成的,而在wpf中布局是靠容器来完成的,大家可以把wpf中的容器和web里面的div做对比,刚入门的同学也不要着急,没学过web一点不影响大家学习容器布局的概念的概念. 大家先来看个设计图吧 因为偷懒我直接切了个百度的图来看,更贴近大家的生活,哈哈. 咱们来分析一下,这张图片由4行2列来

WPF简单布局 浅尝辄止

WPF的窗口只能包含一个元素,为了在WPF窗口中放置多个元素并创建更实用的用户界面,需要在窗口上放置一个容器,然后在容器中放置其它元素. 注意:造成这一限制的原因是window类继承自contentcontrol类, 说道简单布局不得不说下wpf的布局原则: 理想窗口要遵循的布局原则: 1,不应显示的设定元素的尺寸. 2,不应使用屏幕坐标指定元素的位置. 3,布局容器和他们的子元素“共享”可以使用的空间. 4,可以嵌套布局容器. 布局过程包括:测量阶段和排列阶段.所有的wpf布局容器都是派生自s

WPF 之 布局(一)

WPF的布局控件都在 System.Windows.Controls.Panel 这个基类下面,使用 WPF提供的各种控件在WPF应用程序中界面进行布局,同时对各种子控件(如按钮.文本框,下拉框等)进行排列组合. Pane类的公共属性太多了.就简单介绍几个常见的属性如下表. 名称 说明 Cursor 获取或设置在鼠标指针位于此元素上时显示的光标. DataContext 获取或设置元素参与数据绑定时的数据上下文. Dispatcher 获取与此 DispatcherObject 关联的 Disp

WPF UI布局(Layout)

WPF是专门用户界面技术,布局是核心功能之一. 每个布局元素都有自己的特点,要灵活使用. WPF中布局元素有如下: Grid:网格 可以自行定义行和列并通过行列的数量.行高和列宽来调整布局.类似Table. Grid具有ColumnDefinitions和RowDefinitions属性,它们分别是ColumnDefinition和RowDefinition的集合, 表示Grid定义了多少行多少列. StackPanel:栈式面板 可以将包含的元素在垂直或水平方向上排成一条直线,移除前一个元素后

WPF UI布局之概述

在线演示:http://v.youku.com/v_show/id_XNzA5NDk2Mjcy.html 清晰版视频+代码下载:http://115.com/lb/5lbeer0m9lad 一.简单介绍 本篇对WPF的布局控件做一个初步的概览,并分别演示Grid.StackPanel.Canvas.DockPanel和WrapPanel五个布局控件.. 主要内容包含: 1.UI布局的方式和关系. 2.WPF的布局理念. 3.五种布局控件的概述和演示. 4.小结. 二.UI布局的方式和关系 1.三

WPF 动态添加控件以及样式字典的引用(Style introduction)

原文:WPF 动态添加控件以及样式字典的引用(Style introduction) 我们想要达到的结果是,绑定多个Checkbox然后我们还可以获取它是否被选中,其实很简单,我们只要找到那几个关键的对象就可以了. 下面是Ui,其中定义了一个WrapPanel来存放CheckBox,还有两个按钮,用于测试相关功能. <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.c