Silverlight的Tooltip当控件Disable时不显示的问题

在WPF中有ToolTipService.ShowOnDisabled="True"这样的附加属性可以完成这个实现
可是在下面两篇提问中可以发现silverlight中缺乏这样的实现
http://silverlight.net/forums/t/52753.aspx
https://silverlight.net/forums/p/119934/270379.aspx
但是这个对用户体验又是极其重要的,codeplex上有个扩展tooltipservice的项目,可是也并未涉及到这个问题
http://tooltipservice.codeplex.com/

例如 xaml
ContractedBlock.gif ExpandedBlockStart.gif Code
<UserControl x:Class="Silverlight.Tester.Test"
    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width
="400" Height="300">
    
<Grid x:Name="LayoutRoot" Background="White">
        
<Button Content="test" Click="Button_Click">
            
<ToolTipService.ToolTip>
                
<TextBlock Text="aaaa"></TextBlock>
            
</ToolTipService.ToolTip>
        
</Button>
    
</Grid>
</UserControl>

code-behind
ContractedBlock.gif ExpandedBlockStart.gif Code


namespace Silverlight.Tester
ExpandedBlockStart.gifContractedBlock.gif
{
    
public partial class Test : UserControl
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        
public Test()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            InitializeComponent();
        }


        
private void Button_Click(object sender, RoutedEventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            ((Button)sender).IsEnabled 
= false;
        }

    }

}


这样当点击了按钮时是不会再显示tooltip了

有一种不怎么有美感的解决方式就是,在要显示tooltip的控件上加一个透明的rectangle,然后在这个rectangle上放置原来要在控件上放的tooltip
这样确实可以显示了
                 < Grid >
                    
< Grid.ColumnDefinitions >
                        
< ColumnDefinition  Width ="*" ></ ColumnDefinition >
                    
</ Grid.ColumnDefinitions >
                    
< Grid.RowDefinitions >
                        
< RowDefinition  Height ="*" ></ RowDefinition >
                    
</ Grid.RowDefinitions >
                    
< Button  Grid.Row ="0"  Grid.Column ="0"  x:Name ="testButton"  Content ="test"  IsEnabled ="False"   >
                    
                    
</ Button >
                    
< Rectangle  Fill ="Transparent"  Grid.Row ="0"  Grid.Column ="0"  HorizontalAlignment ="Stretch"  VerticalAlignment ="Stretch"  ToolTipService.ToolTip ="test" >
                        
                    
</ Rectangle >
                
</ Grid >
还有没有什么更好的解决方案呢?

转载于:https://www.cnblogs.com/ueqtxu/archive/2009/08/26/1554292.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值