WPF中的动态工具提示
本文关键字:工具提示 动态 WPF | 更新日期: 2023-09-27 18:01:57
我刚接触WPF几天,有点搞清楚一些东西。我已经实现了一个选项卡,现在我需要动态地填充文件名的工具提示。选项卡标题应该只显示文件名,而工具提示应该显示整个文件路径。我该怎么做呢?代码如下:
<!-- XAML -->
<Label Content="TabItem" Height="23" HorizontalAlignment="Left"
Margin="4,1,0,0" Name="TabTitle" VerticalAlignment="Top"
FontFamily="Courier" FontSize="12" ToolTip="Dynamic FilePath"/>
public string Title
{
set
{
((CloseableHeader)this.Header).TabTitle.Content = ExtractFileName(value);
}
}
你说你想要一个标签上的工具提示,但你的XAML是一个标签,所以我就使用它。请在下方留言,说明你在做什么。
因为你只是在使用隐藏代码,所以给标签起一个名字:
<Label Content="TabItem" Height="23" HorizontalAlignment="Left"
Margin="4,1,0,0" Name="TabTitle" VerticalAlignment="Top"
FontFamily="Courier" FontSize="12" ToolTip="Dynamic FilePath"
Name="MyLabel" />
然后在代码后面设置工具提示:
MyLabel.ToolTip = Title; // or whatever you want to display
注:
WPF的优点之一是内置的高级数据绑定。您应该研究MVVM模式,它允许您将逻辑(在ViewModel中)与布局(在XAML中)分离。
然后你可以在你的ViewModel中有一个属性,比如"Title",将你的视图绑定到ViewModel,然后设置工具提示,比如:
<Label ToolTip={Binding Path=Title} ... />
你可以新建一个控件,然后将工具提示设置为这个newcontrol
var but = new Button();
// old code
but.ToolTip = "some string";
// new code with font that can be controlled
var toolTipTextBox = new TextBox();
toolTipTextBox.Text = "some string";
toolTipTextBox.FontSize = 24;
but.ToolTip = toolTipTextBox;