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 ...
随机推荐
- 安卓Design包之NavigationView结合DrawerLayout,toolbar的使用,FloatingActionButton
注意:使用前需要添加Design依赖包,使用toolbar时需要隐藏标题头 FloatingActionButton 悬浮按钮:FloatingActionButton是重写ImageView的,所有 ...
- a code snip
import java.util.ArrayList; import java.util.HashMap; import java.util.regex.Matcher; import java.ut ...
- hdu 1170 Balloon Comes!
Balloon Comes! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- mysql千万级测试1亿数据的分页分析测试
本文为本人最近利用几个小时才分析总结出的原创文章,希望大家转载,但是要注明出处 http://blog.sina.com.cn/s/blog_438308750100im0e.html 有什么问题可以 ...
- web_find和web_reg_find的用法和区别
一.web_find()函数 该函数的作用是“在页面中查找相应的内容”,常用参数及含义如下: web_find("web_find", //定义该查找函数的名称 "Rig ...
- Tomcat - 设置 HTTP 摘要认证
在 Tomcat 中设置 HTTP 摘要认证的示例 在 Tomcat 中设置摘要认证与设置基本认证几乎一样,差别在于配置 web.xml 时,<login-config/> 元素在指定认证 ...
- HTTP - 摘要认证
基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与 SSL 配合使用. 摘要认证是另一种 HTTP 认证协议,它与 ...
- HTTP - 条件请求
当 HTTP 请求包含 If-XXX 这种样式的首部时,服务器会对附带的条件进行判断,只有判断指定条件为真,才会执行请求.这样的请求首部有五个,分别是 If-Modified-Since.If-Unm ...
- double的值太大,以及补0
当double的值太大的时候,比如1000000000 用DecimalFormat: double d = 1.0E7; System.out.println(new DecimalFormat(& ...
- 文件流操作(FileStream,StreamReader,StreamWriter)
大文件拷贝: /// <summary> /// 大文件拷贝 /// </summary> /// <param name="sSource"> ...