真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Silverlight2是怎么解決ListBox中一個LayoutBug

本篇文章為大家展示了Silverlight 2是怎么解決ListBox中一個Layout Bug,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

創(chuàng)新互聯(lián)公司主營師宗網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,師宗h5小程序制作搭建,師宗網(wǎng)站營銷推廣歡迎師宗等地區(qū)企業(yè)咨詢

Silverlight自身還有沒有問題? 誰也沒法回答.

工作中遇到了一個關(guān)于ListBox的問題. 簡單描述一下: 使用ListBox來顯示某對象集合, 在排版的時候, 發(fā)現(xiàn)無論怎么調(diào)整ListBox的屬性, 都無法讓ListItem充滿整個空間; 令人郁悶的是,ListItem中排放的TextBlock/TextBox總會根據(jù)自身文本的大小, 自動設(shè)定自己的長度; ListItem中的所有控件都自動向左對齊,造成了一副"甘特圖"式的圖像, 舉例(姓名, 年齡, 郵件地址)如下:

Silverlight 2是怎么解決ListBox中一個Layout Bug

在設(shè)置了淺藍色的Border之后, 這個現(xiàn)象實在是太明顯了!

按照MSDN的說法, 我們只需要在ListBox的屬性中加入如下設(shè)定語句, 就會強制長度自動Fill了:

HorizontalContentAlignment="Stretch"
但是加入之后沒有效果! 這顯然是Silverlight 2的又一個bug.

我們可以在MSDN上看到ItemContainer的默認Style(你也可以從這里看: http://msdn.microsoft.com/en-us/library/cc278062%28vs.95%29.aspx):

   1: 
   2:   
   3:   
   4:   
   5:   
   6:   
   7:   
   8:   
   9:     
  10:       
  11:         
  12:           
  13:             
  14:               
  15:               
  16:                 
  17:                   
  18:                 
  19:               
  20:             
  21:             
  22:               
  23:               
  24:                 
  25:                   
  26:                 
  27:               
  28:             
  29:             
  30:               
  31:                 
  32:                   
  33:                     
  34:                       
  35:                         Visible
  36:                       
  37:                     
  38:                   
  39:                 
  40:               
  41:               
  42:             
  43:           
  44:           
  45:           
  46:           
  47:             x:Name="contentPresenter"
  48:             Content="{TemplateBinding Content}"
  49:             ContentTemplate="{TemplateBinding ContentTemplate}"
  50:             HorizontalAlignment="Left"
  51:             Margin="{TemplateBinding Padding}"/>
  52:           
  53:         
  54:       
  55:     
  56:   
  57: 


可以看出來, 值設(shè)置為Left的屬性僅有2個:

第3行 HorizontalContentAlignment

第50行 HorizontalAlignment

問題出在了第50行的這個Left,它默認將一個List Item中的所有內(nèi)容都按照想做對齊的方式排列,由于這個style已經(jīng)寫在了Silverlight Runtime內(nèi),所以我們只能重寫這個Style去掉這一行并為ListBox指定新的Style。

解決方法:

為ListBox添加屬性 HorizontalContentAlignment="Stretch", 強制Fill

在App.xaml中添加命名空間: xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"

在App.xaml中添加去掉了HorizontalAlignment="Left"的Style, 并給它的key命名為ListBoxItemContainerStyle ---x:Key="ListBoxItemContainerStyle"

為ListBox添加屬性 ItemContainerStyle="{StaticResource ListBoxItemContainerStyle}, 指定用戶自定義Style
Done!

現(xiàn)在你可以看到這個運行結(jié)果了:

Silverlight 2是怎么解決ListBox中一個Layout Bug

中間的年齡部分是可以隨著窗體大小變化自動變化寬度的.

上述內(nèi)容就是Silverlight 2是怎么解決ListBox中一個Layout Bug,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享題目:Silverlight2是怎么解決ListBox中一個LayoutBug
分享地址:http://weahome.cn/article/ippsop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部