WPF 多线程处理(2)
WPF UI 设计需要自动适应窗体大小,那么Grid是非常好的布局控件。
首先看看这个控件的布局:
这个Grid是3列5行的布局, Grid里面可以包含任何子元素,因此是所有布局的首选, 还有一些其他的空间如DockPanel,Canvas,StackPanel,WarpPanel也是非常好的布局控件.
先看如下代码:

<Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="25"/> <RowDefinition Height="60"/> <RowDefinition Height="*"/> <RowDefinition Height="25"/> <RowDefinition Height="20"/> </Grid.RowDefinitions>
不多说,上UI全部的代码:

<Grid Background="#989898"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="25"/> <RowDefinition Height="60"/> <RowDefinition Height="*"/> <RowDefinition Height="25"/> <RowDefinition Height="20"/> </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="3" HorizontalAlignment="Right" Width="112"> <WrapPanel> <Button Height="22.75" Name="btn_Top" Width="35" Content="T" Margin="0,0,1,0" HorizontalAlignment="Stretch" VerticalAlignment="Top"/> <Button Height="22.75" Name="btn_Min" Width="35" Content="-" Margin="0,0,1,0" HorizontalAlignment="Stretch" VerticalAlignment="Top"/> <Button Height="22.75" Name="btn_Close" Width="35" Content="X" Margin="0,0,1,0" HorizontalAlignment="Stretch" VerticalAlignment="Top"/> </WrapPanel> </Border> <DockPanel Grid.Row="1" Grid.ColumnSpan="3" Margin="7,0" Background="#989898"> <Label Height="28" Name="lblForder" Margin="7,0,0,0">Forder Path:</Label> <Button Height="23" Name="btn_Broswer" DockPanel.Dock="Right" Padding="8,3" Margin="7,0">Broswer</Button> <TextBlock Height="23" Name="tbk_ForderPath" Background="White" ForceCursor="True" Foreground="Red"/> </DockPanel> <GroupBox Grid.Row="2" Grid.ColumnSpan="3" Margin="7"> <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="3" Margin="0" Name="dockPanel1" Grid.ColumnSpan="3"> <Label Height="28" Name="label1" Margin="7,0,0,0">Status:</Label> <Button Height="23" Name="btn_Start" DockPanel.Dock="Right" Padding="8,3" Margin="7,0">Start</Button> <TextBlock Height="23" Name="tbk_Status" Background="White" Text=""/> </DockPanel> <ProgressBar Name="pBar" Grid.Row="4" Grid.ColumnSpan="3" 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)
作者:风清扬 No.1
出处:http://www.cnblogs.com/fengqingyangNo1
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下右下角的 【关注 风清扬 No.1】。
因为,我的写作热情也离不开您的肯定支持。
感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客.
出处:http://www.cnblogs.com/fengqingyangNo1
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下右下角的 【关注 风清扬 No.1】。
因为,我的写作热情也离不开您的肯定支持。
感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库