2014-04-25 77 views
2

WPF工具提示和文本换行我有一个扩展:用于扩展

<Expander Header="{Binding Name}" IsExpanded="False" > 

如何添加工具提示呢?

而另一个问题,标题的名称很长,由于某种原因,扩展器留下了名称的中间中的一个字符。

例如:

  • 名称是 - something_second
  • 显示屏显示:somethingsecond

什么可能呢?

我想让它包裹文字,但不知道如何去做。

编辑:

行,所以我设法做一个提示,我的用户静态资源。 但由于某些不合理的原因,文本仍然被剪切

+0

可能重复[禁用WPF标签a ccelerator键(文本下划线缺失)](http://stackoverflow.com/questions/40733/disable-wpf-label-accelerator-key-text-underscore-is-missing) – McGarnagle

回答

1

当标签中存在下划线时,WPF会将其解释为访问密钥。要解决这个问题的方法之一是使用双下划线,其逃逸的访问字符:

public string Name 
{ 
    get { return _name; } 
    set { _name = (value ?? "").Replace("_", "__"); 
} 
private string _name; 

或者:有可能关闭访问字符为个人控制,使用ContentPresenter.RecognizesAccessKey。不幸的是,要使用这个,你通常必须复制/修改默认控制模板,并将任何ContentPresenter的“RecognizesAccessKey”属性设置为false。对于Expander,例如,你将不得不修改default template的这一部分:

<ContentPresenter Grid.Column="1" 
        Margin="4" 
        ContentSource="Header" 
        RecognizesAccessKey="False" /> 

一个比较另类的(实际上可能是最简单)。使用TextBlock的头 - 这将阻止使用的快捷键:

<Expander IsExpanded="False"> 
    <Expander.Header> 
     <TextBlock Text="{Binding Name}" /> 
    </Expander.Header> 
</Expander> 

相关问题

+0

非常感谢您的详细解答!最后,我选择了简单的方式,它的工作。 – Yogevnn