WPF 多线程处理(2)
WPF UI 设计需要自动适应窗体大小,那么Grid是非常好的布局控件。
首先看看这个控件的布局:

这个Grid是3列5行的布局, Grid里面可以包含任何子元素,因此是所有布局的首选, 还有一些其他的空间如DockPanel,Canvas,StackPanel,WarpPanel也是非常好的布局控件.
先看如下代码:
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions> <Grid.RowDefinitions>
<RowDefinition Height=""/>
<RowDefinition Height=""/>
<RowDefinition Height="*"/>
<RowDefinition Height=""/>
<RowDefinition Height=""/>
</Grid.RowDefinitions>
不多说,上UI全部的代码:
<Grid Background="#989898">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height=""/>
<RowDefinition Height=""/>
<RowDefinition Height="*"/>
<RowDefinition Height=""/>
<RowDefinition Height=""/>
</Grid.RowDefinitions>
<Border Background="#989898" BorderBrush="#989898" BorderThickness="2,0,2,2" Margin="0,0,5.643,0" Height="24.75" VerticalAlignment="Top" Grid.ColumnSpan="" HorizontalAlignment="Right" Width="">
<WrapPanel>
<Button Height="22.75" Name="btn_Top" Width="" Content="T" Margin="0,0,1,0" HorizontalAlignment="Stretch" VerticalAlignment="Top"/>
<Button Height="22.75" Name="btn_Min" Width="" Content="-" Margin="0,0,1,0" HorizontalAlignment="Stretch" VerticalAlignment="Top"/>
<Button Height="22.75" Name="btn_Close" Width="" Content="X" Margin="0,0,1,0" HorizontalAlignment="Stretch" VerticalAlignment="Top"/>
</WrapPanel>
</Border>
<DockPanel Grid.Row="" Grid.ColumnSpan="" Margin="7,0" Background="#989898">
<Label Height="" Name="lblForder" Margin="7,0,0,0">Forder Path:</Label>
<Button Height="" Name="btn_Broswer" DockPanel.Dock="Right" Padding="8,3" Margin="7,0">Broswer</Button>
<TextBlock Height="" Name="tbk_ForderPath" Background="White" ForceCursor="True" Foreground="Red"/>
</DockPanel>
<GroupBox Grid.Row="" Grid.ColumnSpan="" Margin="">
<GroupBox.Header>
<WrapPanel>
<TextBlock Text="{Binding ElementName= listbox1, Path=Items.Count}"/>
<TextBlock Padding="2,0,0,0"> file(s) found.</TextBlock>
</WrapPanel>
</GroupBox.Header>
<ListBox Name="listbox1" SelectionMode="Single">
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Name="cmi2" Header="Delete selected files" />
<MenuItem Name="cmi3" Header="Clear"/>
</ContextMenu>
</ListBox.ContextMenu>
</ListBox>
</GroupBox>
<DockPanel Grid.Row="" Margin="" Name="dockPanel1" Grid.ColumnSpan="">
<Label Height="" Name="label1" Margin="7,0,0,0">Status:</Label>
<Button Height="" Name="btn_Start" DockPanel.Dock="Right" Padding="8,3" Margin="7,0">Start</Button>
<TextBlock Height="" Name="tbk_Status" Background="White" Text=""/>
</DockPanel>
<ProgressBar Name="pBar" Grid.Row="" Grid.ColumnSpan="" Visibility="Hidden" />
</Grid>
</Window>
Grid.Row="" 代表在几行, Grid.Column="" 代表在几列. RowSpan,ColumnSpan 代表跨几行,几列. 和HTML的table是一样的道理.
Padding=““ Margin=”“ 这些都是定位这个位置,类似HTML的属性.
这个设置Window在屏幕中间:WindowStartupLocation="CenterScreen"
最好设置一下Window的最小大小,这样就不会把重要信息隐藏了.
MinWidth="550"
MinHeight="550"
WindowStyle="None"
下一篇:WPF 多线程处理(3)
上一篇:WPF 多线程处理(1)
WPF 多线程处理(2)的更多相关文章
- WPF 多线程处理(1)
WPF 多线程处理(1) WPF 多线程处理(2) WPF 多线程处理(3) WPF 多线程处理(4) WPF 多线程处理(5) WPF 多线程处理(6) 废话不多说,先上图: 多线程处理数据后在th ...
- WPF 多线程处理(5)
WPF 多线程处理(1) WPF 多线程处理(2) WPF 多线程处理(3) WPF 多线程处理(4) WPF 多线程处理(5) WPF 多线程处理(6) 项目的目录: 以下是FileStroage的 ...
- WPF 多线程处理(4)
WPF 多线程处理(1) WPF 多线程处理(2) WPF 多线程处理(3) WPF 多线程处理(4) WPF 多线程处理(5) WPF 多线程处理(6) 开始一个线程处理读取的文件并且更新到list ...
- WPF 多线程处理(6)
WPF 多线程处理(1) WPF 多线程处理(2) WPF 多线程处理(3) WPF 多线程处理(4) WPF 多线程处理(5) WPF 多线程处理(6) 以下是子窗体的UI: <Window ...
- WPF 多线程处理(3)
WPF 多线程处理(1) WPF 多线程处理(2) WPF 多线程处理(3) WPF 多线程处理(4) WPF 多线程处理(5) WPF 多线程处理(6) 首先我们需要几个属性来保存取得的数据,因为在 ...
- 用 UI 多线程处理 WPF 大量渲染的解决方案
众所周知, WPF 的 UI 渲染是单线程的,所以如果我们异步或者新建线程去进行数据处理的时候,处理完,想要更新 UI 的时候,需要调用一下 Dispatcher.Invoke,将处理完的数据推入到 ...
- C# & WPF 随手小记之一 ——初探async await 实现多线程处理
嗯...我也是在园子待了不短时间的人了,一直以来汲取着园友的知识,感觉需要回馈什么. 于是以后有空我都会把一些小技巧小知识写下来,有时候可能会很短甚至很简单,但希望能帮到大家咯. 第一篇文章来说说as ...
- Git使用总结 Asp.net生命周期与Http协议 托管代码与非托管代码的区别 通过IEnumerable接口遍历数据 依赖注入与控制反转 C#多线程——优先级 AutoFac容器初步 C#特性详解 C#特性详解 WPF 可触摸移动的ScrollViewer控件 .NET(C#)能开发出什么样的APP?盘点那些通过Smobiler开发的移动应用
一,原理 首先,我们要明白Git是什么,它是一个管理工具或软件,用来管理什么的呢?当然是在软件开发过程中管理软件或者文件的不同版本的工具,一些作家也可以用这个管理自己创作的文本文件,由Linus开发的 ...
- 在WPF中使用依赖注入的方式创建视图
在WPF中使用依赖注入的方式创建视图 0x00 问题的产生 互联网时代桌面开发真是越来越少了,很多应用都转到了浏览器端和移动智能终端,相应的软件开发上的新技术应用到桌面开发的文章也很少.我之前主要做W ...
随机推荐
- Android(java)学习笔记114:LayoutInflater和findViewById
1. 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById(). 不同点是LayoutInflater是用来找res/layout/下的xml布局文件, ...
- swift 中异常的处理方法
swift 中什么时候需要处理异常,在调用系统某个方法的时,该方法最后有一个throws 说明该方法会抛出异常,如果一个方法抛出异常,那么需要对该异常进行处理 swift 异常处理提供了三种方法 方式 ...
- 计算 MD5值
// // MD5Value.h // iOSEdu // // Created by littest on 16/2/26. // Copyright © 2016年 littest. All ri ...
- 关于直接创建视图UITableViewController显示(初学)
今天渣渣想直接创建一个UITableView视图作为根视图来用结果发现有警告,才明白TableView和view是不能直接作为根视图的,需要放在ViewController上.做个笔记详细了解下. 参 ...
- 【线性结构上的动态规划】UVa 11400 - Lighting System Design
Problem F Lighting System Design Input: Standard Input Output: Standard Output You are given the tas ...
- django 学习-11 Django模型数据模板呈现
1.for author in Author.objects.all(): for book in author.book_set.all(): print book 2.vim blog/vie ...
- 对XML的操作
对XML的操作主要使用到的语法示例: using System.Xml; private static string XmlMarketingStaff = AppDomain.CurrentDoma ...
- HDOJ2006求奇数的乘积
求奇数的乘积 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- 自定义ListView适配器
继承BaseAdapter类 覆盖以下4个方法: @Override public int getCount() { return users.size(); } @Override public O ...
- hive 未初始化元数据库报错
启动hive-metastore和hive-server2 用beeline连接hive报错 [root@node04 hive]# beeline Beeline version 0.13.1-cd ...