日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Silverlight Tips(1)

發(fā)布時(shí)間:2025/3/13 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Silverlight Tips(1) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??????? 到年底了,手頭上的任務(wù)暫時(shí)也告一段落,公司的產(chǎn)品Web端最近升級(jí)到了SL4,終于可以完全脫離了用VS08開發(fā)時(shí)沒(méi)有可視化設(shè)計(jì)器所受到的折磨。

利用年前這幾天空閑時(shí)間,將平時(shí)遇到的問(wèn)題和在網(wǎng)絡(luò)上看到的整理整理,就算是對(duì)知識(shí)的整合吧。

?????? DataPicker的水印處理

???????

????? 如果你想改變這里水印的內(nèi)容,或許這并不是太容易實(shí)現(xiàn)的,在DatePicker控件內(nèi)容有一個(gè)類型為DatePickerTextBox的部件公開了一個(gè)Watermark屬性

[TemplatePart(Name = "TextBox", Type = typeof (DatePickerTextBox))] public class DatePicker : Control

???? 那么改變這個(gè)水印最容易的方式,就是從繼承DataPicker繼承,并重寫OnApplyTemplate()即可

public class MyDatePicker:DatePicker { public override void OnApplyTemplate() { base.OnApplyTemplate(); DatePickerTextBox datePickerTextBox = base.GetTemplateChild("TextBox") as DatePickerTextBox; datePickerTextBox.Watermark = "選擇日期..."; } }

????? 把這個(gè)控件放到頁(yè)面中,你會(huì)看到這樣的效果

??????????

???? 如果你想根據(jù)設(shè)置DatePicker格式提示用戶輸入,可以簡(jiǎn)單的改變下上面的代碼

public override void OnApplyTemplate() { base.OnApplyTemplate(); DatePickerTextBox datePickerTextBox = base.GetTemplateChild("TextBox") as DatePickerTextBox; string formatString = String.Empty; if (this.SelectedDateFormat == DatePickerFormat.Short) formatString = "mm/d/yyyy"; if(this.SelectedDateFormat == DatePickerFormat.Long) formatString = "dddd,MMMM,dd,yyyy"; datePickerTextBox.Watermark = "請(qǐng)輸入:(" +formatString+")"; }

???? 這時(shí)候效果圖是這樣的:

????????? ??

??? 不過(guò)用上面這種方式,只能保證第一次顯示這樣的效果,換言之,當(dāng)你輸入一個(gè)值并刪除它時(shí),水印信息將顯示原來(lái)的值。

???? FallbackValue屬性

???? 在sl4中,Bind添加了多個(gè)屬性,FallbackValue是用來(lái)設(shè)定當(dāng)綁定的字段不存在時(shí),UI上顯示的內(nèi)容

<TextBlock Text="{Binding Path=Name,FallbackValue='無(wú)效值'}"/>

????? 當(dāng)綁定源不存在Name屬性時(shí),TextBlock就會(huì)顯示“無(wú)效值”。

????? StringFormat與CurrentCulture??

?????? 在SL3中如果要改變顯示字符串的格式只能通過(guò)IValueConverter來(lái)實(shí)現(xiàn),在SL4 中綁定提供了StringFormat屬性簡(jiǎn)化了這部分的工作:

<TextBlock Text="{Binding Path=Data,StringFormat=Now is \{0:G\}}" /> <TextBlock Text="{Binding Path=Data,StringFormat=Now is \{0:yyyy-M-dd\}}" /> <TextBlock Text="{Binding Path=Data,StringFormat='Now is {0:yyyy-M-dd}'}" />

????? StringFormat屬性設(shè)置了綁定對(duì)象的格式

?????

???? 這里主要是涉及一下多語(yǔ)言的時(shí)候StringFomat不能正確的顯示對(duì)應(yīng)的文化格式,首先將情景重現(xiàn)下:

????? 將當(dāng)前文化與時(shí)間綁定到頁(yè)面上:

<TextBlock Text="{Binding Path=Data,StringFormat=Now is: \{0:G\}}" /> <TextBlock Text="{Binding Path=Name,StringFormat='CultureInfo Name is: {0}'}" />

??? 這時(shí)界面上顯示的結(jié)果如下:

???????

??? 可以看到當(dāng)前文化是zh-CN,現(xiàn)在我們?cè)O(shè)置另一種文化,這里簡(jiǎn)單一點(diǎn),不必通過(guò)語(yǔ)言包的形式,只在aspx頁(yè)面上的<object/>里添加culture/uiculture參數(shù)即可

<param name="culture" value="zh-TW" />

??? 這時(shí)候你會(huì)看到頁(yè)面顯示如下:

??????

?? 很明顯,盡管系統(tǒng)已經(jīng)識(shí)別了不同的環(huán)境,但是StringFormat并沒(méi)有顯示的出相應(yīng)的時(shí)間格式

?? 這里通過(guò)在頁(yè)面構(gòu)造函數(shù)中添加如下代碼:

this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);

???? 代碼就是將當(dāng)前文化設(shè)置為UI語(yǔ)言,這時(shí)你看到的頁(yè)面將會(huì)是這樣的:

??

?? 明顯的,這時(shí)候StringFormat可以自動(dòng)的改變格式了。

?? 在網(wǎng)上還看到另一種更簡(jiǎn)便的方式,直接在xmal的根元素中設(shè)置xml:lang=”zh-TW”,StringFormat會(huì)自動(dòng)的適應(yīng)格式,不過(guò)這種方式不好,

畢竟實(shí)際情況中不會(huì)用這種方式設(shè)置多語(yǔ)言化。

??? ComboBox選中項(xiàng)

????? ComboBox有一個(gè)IsSelected屬性來(lái)設(shè)置選中項(xiàng),不過(guò)在動(dòng)態(tài)添加項(xiàng)的時(shí)候,通過(guò)設(shè)置IsSelected是無(wú)效的

ComboBoxItem comboBoxItem; for (int i = 0; i < 5; i++) { comboBoxItem=new ComboBoxItem(); comboBoxItem.Content = "Item" + i; this.comboBox1.Items.Add(comboBoxItem); } if(comboBox1.Items.Count>0) { comboBoxItem = comboBox1.Items[0] as ComboBoxItem; comboBoxItem.IsSelected = true; }

?????? 你會(huì)發(fā)現(xiàn)ComboBox上并沒(méi)有顯示第一項(xiàng),其實(shí)解決這個(gè)問(wèn)題很簡(jiǎn)單

if(comboBox1.Items.Count>0) { comboBox1.SelectedIndex = 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/626498301/archive/2011/01/21/1940785.html

總結(jié)

以上是生活随笔為你收集整理的Silverlight Tips(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。