前言
ViewBox的作用是能夠縮放位於其中的控件,以達到更好的展示效果;如果做過winform架構應用開發,其進行布局時,經常會有一個問題,當容器內部的控件超過容器的寬度,控件要么被遮蓋、要么被裁剪,很難達到預期的顯示效果,而且因winform的界面控件都是通過拖拽來進行布局,屬於靜態布局,很難做到響應式布局,而WPF中的ViewBox則很好的完善了winfrom在這方面布局中的不足,ViewBox常常與其他布局控件組合使用,來達到較好界面效果;
1. ViewBox 進行布局
以下代碼示例,將一個表格放在Viewbox中,來達到同步縮放的效果:
1 <Viewbox> 2 <ListView Height="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto" > 3 <ListView.View> 4 <GridView> 5 <GridViewColumn Width="60"> 6 <CheckBox>全選</CheckBox> 7 <GridViewColumn.CellTemplate> 8 <DataTemplate> 9 <CheckBox IsChecked="False" /> 10 </DataTemplate> 11 </GridViewColumn.CellTemplate> 12 </GridViewColumn> 13 <GridViewColumn Header="設備名稱" Width="60"></GridViewColumn> 14 <GridViewColumn Header="型號" Width="60"></GridViewColumn> 15 <GridViewColumn Header="靈敏度" Width="60"></GridViewColumn> 16 <GridViewColumn Width="60"> 17 <CheckBox>采樣率</CheckBox> 18 </GridViewColumn> 19 <GridViewColumn Width="60"> 20 <CheckBox>分辨率</CheckBox> 21 </GridViewColumn> 22 <GridViewColumn Width="70"> 23 <CheckBox>輸入方式</CheckBox> 24 </GridViewColumn> 25 <GridViewColumn Width="70"> 26 <CheckBox>同步方式</CheckBox> 27 </GridViewColumn> 28 <GridViewColumn Width="70"> 29 <CheckBox>加密方式</CheckBox> 30 </GridViewColumn> 31 <GridViewColumn Width="60"> 32 <CheckBox>秘鑰</CheckBox> 33 </GridViewColumn> 34 <GridViewColumn Width="80"> 35 <CheckBox>觸發方式</CheckBox> 36 </GridViewColumn> 37 <GridViewColumn Width="70"> 38 <CheckBox>負延遲(s)</CheckBox> 39 </GridViewColumn> 40 <GridViewColumn Width="85"> 41 <CheckBox>采集時長(s)</CheckBox> 42 </GridViewColumn> 43 <GridViewColumn Width="70"> 44 <CheckBox>觸發次數</CheckBox> 45 </GridViewColumn> 46 </GridView> 47 </ListView.View> 48 </ListView> 49 </Viewbox>
界面效果如下,當界面的大小變化時,界面中的表格會同步進行縮放,而不會被遮蓋或裁剪:

ViewBox中最多只能放一個控件,其與其他控件組合使用,可以達到較好的效果,動手測試使用,體會會更深;
