silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight 2 RTW中ToolTipService.ToolTip不继承父节点的DataContext的问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

   在Silverlight2 RTW中,利用ToolTipservice.ToolTip可以实现ToolTip(提示)效果,例如: < Button  Width ="100"  Height ="40"  Content ="button"  ToolTipservice.ToolTip ="这是提示信息"   />    显示如图:   我们还可以自定义提示信息的显示样式,例如改变字体或者
@H_197_6@
@H_197_6@

   在Silverlight2 RTW中,利用ToolTipservice.ToolTip可以实现ToolTip(提示效果,例如:

< Button  Width ="100"  Height ="40"  Content ="Button"  ToolTipservice.ToolTip ="这是提示信息

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

"
  />

   显示如图:

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

  我们还可以自定义提示信息的显示样式,例如改变字体或者显示复杂的图形,等等。例如:
         < Button  Width ="100"  Height ="40"  Content ="Button" >
            
< ToolTipservice.ToolTip >
                
< Grid >
                    
< Ellipse  Width ="150"  Height ="50"  Fill ="Beige" ></ Ellipse >
                    
< TextBlock  Text ="这是提示信息

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

"
 Foreground ="Red"   />
                
</ Grid >
            
</ ToolTipservice.ToolTip >
        
</ Button >
  显示如图:

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

   对于提示信息,同样可以使用 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 >
   
   这是因为在Silverlight 2RTW里,ToolTipservice.ToolTip没有继承上层元素的DataContext。如果我们显示指定ToolTipservice.ToolTip的DataContext,这种方式同样可以工作。但显示指定ToolTip的DataContext在有的场合是有点别扭,特别是在ControlTemplate里更是有一定的困难。
   为了使ToolTip能够利用父级的DataContext进行绑定,在 http://silverlight.net/forums/p/14241/46745.aspx#46745讨论了在Beta 1下修改ToolTip原代码方法。目前我还没有找到Silverlight 2 RTW下对应的Controls完整示例代码,为此,我们可以用一个变通的方式来绕过这个问题。既然直接在 ToolTipservice.ToolTip =" {Binding UserNamE} "  里能够成功绑定,为了实现复杂的提示信息,我们可以借助Converter来实现:
     < 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 >
    关键的部分我们在Converter里实现:
     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, System.Globalization.CultureInfo culturE)
        {
            
throw   new  NotImplementedException();
        }






--------------------------------------------------------------------------------------------------------------

大佬总结

以上是大佬教程为你收集整理的Silverlight 2 RTW中ToolTipService.ToolTip不继承父节点的DataContext的问题全部内容,希望文章能够帮你解决Silverlight 2 RTW中ToolTipService.ToolTip不继承父节点的DataContext的问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
猜你在找的silverlight相关文章