生活随笔
收集整理的這篇文章主要介紹了
wpf响应式布局
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
很多時(shí)候我們做WPF程序時(shí)大多都會(huì)直接拖拽控件,這樣直接拖放控件的方式,VS會(huì)自動(dòng)生成一個(gè)固定的坐標(biāo),但是這種方式在WPF中不推薦使用
第一、控件的布局應(yīng)該有容器來(lái)決定,而不是通過(guò)控件的margin屬性來(lái)控制位置。
第二、控件應(yīng)避免明確的定義具體的尺寸,因?yàn)轱@示器分辨率及windows窗體的大小都有可能隨時(shí)改變,如果明確的定義尺寸。
當(dāng)窗體變動(dòng)后就會(huì)出現(xiàn)大面積的空白或是缺失。但為了控件功能及效果的展示,應(yīng)該限定一個(gè)可接受的最大及最小尺寸。
通過(guò)MinWidth, MinHeight, MaxWidth, MaxHeight屬性可以實(shí)現(xiàn)這一點(diǎn)。
第三、由于現(xiàn)在顯示器分辨率非常多(1366×768、1600×900、、1980×1080等等),如果將界面元素位置設(shè)置成與屏幕坐標(biāo)相關(guān),這樣做的話是會(huì)有風(fēng)險(xiǎn)的。
第四、容器應(yīng)將有效空間共享給其子控件,這也是為了不在窗體調(diào)整后,遺留出大塊的空余。
第五、容器嵌套使用,因?yàn)椴煌娜萜?#xff0c;表現(xiàn)效果不同,必要時(shí)應(yīng)結(jié)合使用。
<Grid><Grid.RowDefinitions><RowDefinition Height="*" /><RowDefinition Height="Auto" /><RowDefinition Height="22" /></Grid.RowDefinitions><ListView Name="listView1" MinWidth="280" ><ListView.View><GridView x:Name="gridView1"><GridViewColumn Header="ContactID"></GridViewColumn><GridViewColumn Header="FirstName"></GridViewColumn><GridViewColumn Header="LastName"></GridViewColumn><GridViewColumn Header="EmailAddress"></GridViewColumn></GridView></ListView.View></ListView><WrapPanel Grid.Row="1" Orientation="Horizontal"></WrapPanel><Button Grid.Row="2" HorizontalAlignment="Right" Click="button1_Click" Name="button1">Refresh
</Button></Grid><Grid><Grid.RowDefinitions><RowDefinition Height="*" /><RowDefinition Height="Auto" /><RowDefinition Height="22" /></Grid.RowDefinitions><ListView Name="listView1" MinWidth="280" ><ListView.View><GridView x:Name="gridView1"><GridViewColumn Header="ContactID"></GridViewColumn><GridViewColumn Header="FirstName"></GridViewColumn><GridViewColumn Header="LastName"></GridViewColumn><GridViewColumn Header="EmailAddress"></GridViewColumn></GridView></ListView.View></ListView><WrapPanel Grid.Row="1" Orientation="Horizontal"></WrapPanel><Button Grid.Row="2" HorizontalAlignment="Right" Click="button1_Click" Name="button1">Refresh
</Button></Grid>
如圖
現(xiàn)在我們的示例中TextBlock和TextBox不是成對(duì)出現(xiàn)的,為了實(shí)現(xiàn)比較友好的界面一般需要成對(duì)出現(xiàn),而且要在同一水平線上面,不能換行,在WPF中不能使用絕對(duì)定位,那應(yīng)該怎么實(shí)現(xiàn)呢?很簡(jiǎn)單,使用StackPanel面板。修改后的代碼如下
<WrapPanel Grid.Row="1" Orientation="Horizontal"><StackPanel Orientation="Horizontal" Margin="5,2,5,2"><TextBlock Name="textBlock_ContactID" Text="ContactID:" /><TextBox Name="textBox_ContactID" MinWidth="100" /></StackPanel><StackPanel Orientation="Horizontal" Margin="5,2,5,2"><TextBlock Name="textBlock_FirstName" Text="FirstName:" /><TextBox Name="textBox_FirstName" MinWidth="100" /></StackPanel><StackPanel Orientation="Horizontal" Margin="5,2,5,2"><TextBlock Name="textBlock_LastName" Text="LastName:" /><TextBox Name="textBox_LastName" MinWidth="100" /></StackPanel><StackPanel Orientation="Horizontal" Margin="5,2,5,2"><TextBlock Name="textBlock_EmailAddress" Text="EmailAddress:" /><TextBox Name="textBox_EmailAddress" MinWidth="100" /></StackPanel></WrapPanel>
實(shí)現(xiàn)效果如下
總結(jié)
以上是生活随笔為你收集整理的wpf响应式布局的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。