日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Silverlight 2解決ListBox中一個(gè)Layout Bug

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

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

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

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

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

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

   1: 

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

第3行 HorizontalContentAlignment

第50行 HorizontalAlignment

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

解決方法:

為ListBox添加屬性 HorizontalContentAlignment="Stretch", 強(qiáng)制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)在你可以看到這個(gè)運(yùn)行結(jié)果了:

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

【編輯推薦】

  1. 在Silverlight中進(jìn)行基本的數(shù)據(jù)驗(yàn)證
  2. 詳解Silverlight中的Downloader對象
  3. Silverlight 2 Twitter 例程

文章名稱:Silverlight 2解決ListBox中一個(gè)Layout Bug
文章路徑:http://m.5511xx.com/article/cdeosic.html