C# WPF中的动态工具提示

C# WPF中的动态工具提示,c#,wpf,dynamic,tooltip,C#,Wpf,Dynamic,Tooltip,我刚进入WPF几天,有点搞清楚了。我已经实现了一个选项卡,现在我需要动态填充文件名的工具提示。选项卡标题应仅显示文件名,因为工具提示应显示整个文件路径。我该怎么做?代码如下: <!-- XAML --> <Label Content="TabItem" Height="23" HorizontalAlignment="Left" Margin="4,1,0,0" Name="TabTitle" VerticalAlignment="Top" Fon

我刚进入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);
    }
}

公共字符串标题
{
设置
{
((CloseableHeader)this.Header).TabTitle.Content=ExtractFileName(值);
}
}

您说过希望在选项卡上显示工具提示,但您的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" />

旁注:

WPF的优点之一是内置了高级数据绑定。您应该研究MVVM模式,它允许您将逻辑(在ViewModel中)与布局(在XAML中)分开

然后,您可以在ViewModel中拥有一个类似“Title”的属性,将视图绑定到ViewModel,并使用以下内容设置工具提示:

<Label ToolTip={Binding Path=Title} ... />

您可以新建一个控件,然后将工具提示设置为此新控件

    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;

标题属性只是我的代码隐藏。
    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;