日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Silverlight 2 RTW中ToolTipService.ToolTip不继承父节点的DataContext的问题

發(fā)布時(shí)間:2025/4/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Silverlight 2 RTW中ToolTipService.ToolTip不继承父节点的DataContext的问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? 在Silverlight2 RTW中,利用ToolTipService.ToolTip可以實(shí)現(xiàn)ToolTip(提示)效果,例如:

<Button?Width="100"?Height="40"?Content="Button"?ToolTipService.ToolTip="這是提示信息"?/>

?? 顯示如圖:

我們還可以自定義提示信息的顯示樣式,例如改變字體或者顯示復(fù)雜的圖形,等等。例如:
????????<Button?Width="100"?Height="40"?Content="Button">
????????????
<ToolTipService.ToolTip>
????????????????
<Grid>
????????????????????
<Ellipse?Width="150"?Height="50"?Fill="Beige"></Ellipse>
????????????????????
<TextBlock?Text="這是提示信息"?Foreground="Red"?/>
????????????????
</Grid>
????????????
</ToolTipService.ToolTip>
????????
</Button> ? 顯示如圖:
對(duì)于提示信息,同樣可以使用Binding(特別是在ControlTemplate里常常使用Binding,例如ListBoxItem)。例如:
????????<Grid?DataContext="{StaticResource?MyUser}">
????????????
<Button?Width="100"?Height="40"?Content="Button"?ToolTipService.ToolTip="{Binding?UserName}"?/>
????????
</Grid> 但下面的這種綁定方式確不能正常顯示提示信息:
????????<Grid?DataContext="{StaticResource?MyUser}">
????????????
<Button?Width="100"?Height="40"?Content="Button">
????????????????
<ToolTipService.ToolTip>
????????????????????
<TextBlock x:Name="txt"?Text="{Binding?UserName}"?/>
????????????????
</ToolTipService.ToolTip>
????????????
</Button>
????????
</Grid> ??? 這是因?yàn)樵赟ilverlight 2RTW里,ToolTipService.ToolTip沒(méi)有繼承上層元素的DataContext。如果我們顯示指定ToolTipService.ToolTip的DataContext,這種方式同樣可以工作。但顯示指定ToolTip的DataContext在有的場(chǎng)合是有點(diǎn)別扭,特別是在ControlTemplate里更是有一定的困難。 為了使ToolTip能夠利用父級(jí)的DataContext進(jìn)行綁定,在http://silverlight.net/forums/p/14241/46745.aspx#46745討論了在Beta 1下修改ToolTip原代碼的方法。目前我還沒(méi)有找到Silverlight 2 RTW下對(duì)應(yīng)的Controls完整示例代碼,為此,我們可以用一個(gè)變通的方式來(lái)繞過(guò)這個(gè)問(wèn)題。既然直接在ToolTipService.ToolTip="{Binding?UserName}"?里能夠成功綁定,為了實(shí)現(xiàn)復(fù)雜的提示信息,我們可以借助Converter來(lái)實(shí)現(xiàn):
????<UserControl.Resources>
????????
<local:Converter?x:Name="myConverter"?/>
????
</UserControl.Resources>

????
<Grid?DataContext="{StaticResource?MyUser}">
????????
<Button?Width="100"?Height="40"?Content="Button"?ToolTipService.ToolTip="{Binding?UserName,Converter={StaticResource?myConverter}}"?/>
????
</Grid>
關(guān)鍵的部分我們?cè)贑onverter里實(shí)現(xiàn):
????public?class?Converter?:?IValueConverter
????{
????????
#region?IValueConverter?Members

????????
public?object?Convert(object?value,?Type?targetType,?object?parameter,?System.Globalization.CultureInfo?culture)
????????{
????????????
if?(value?!=?null)
????????????{
????????????????var?s?
=?value.ToString();
????????????????TextBlock?block?
=?new?TextBlock();
????????????????block.Text?
=?s;
????????????????block.Style?
=?(Style)Application.Current.Resources["MyTextBlockStyle"];
????????????????
return?block;
????????????}
????????????
return?null;
????????}

????????
public?object?ConvertBack(object?value,?Type?targetType,?object?parameter,?System.Globalization.CultureInfo?culture)
????????{
????????????
throw?new?NotImplementedException();
????????}
可以參考這個(gè)帖子:http://silverlight.net/forums/p/84675/197144.aspx#197144

轉(zhuǎn)載于:https://www.cnblogs.com/qguohog/archive/2009/04/12/1434338.html

總結(jié)

以上是生活随笔為你收集整理的Silverlight 2 RTW中ToolTipService.ToolTip不继承父节点的DataContext的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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