首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Telerik RadDocking在浮动窗口标题上显示ToolTip

Telerik RadDocking在浮动窗口标题上显示ToolTip
EN

Stack Overflow用户
提问于 2013-06-06 07:23:19
回答 1查看 1.2K关注 0票数 0

我有一个带有窗格的RadDocking,每个窗格都包含具有唯一DataContext的自定义对象。对于每个窗格,我都想显示一个带有ToolTip的标题。标头和ToolTip都应该绑定到窗格的DataContext的某个属性。

因此,我写了这样的代码:

代码语言:javascript
复制
<UserControl.Resources>
    <DataTemplate x:Key="DataTemplateTitleHeaderTooltip">
        <TextBlock Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type telerikDocking:RadPane}}, Path=Content.DataContext.TitleTootip}"
                   ToolTip="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type telerikDocking:RadPane}}, Path=Content.DataContext.TitleTootip}"
                   telerik:WindowHost.HitTestable="True" />
    </DataTemplate>
</UserControl.Resources>
<telerikDocking:RadDocking>
    <telerikDocking:RadDocking.DocumentHost>
        <telerikDocking:RadSplitContainer>
            <telerikDocking:RadPaneGroup>
                <telerikDocking:RadPane HeaderTemplate="{StaticResource DataTemplateTitleHeaderTooltip}">
                    <Border x:Name="Target"
                            Background="HotPink" />
                </telerikDocking:RadPane>
                <telerikDocking:RadPane Header="Pane02">
                    <Border Background="Fuchsia" />
                </telerikDocking:RadPane>
            </telerikDocking:RadPaneGroup>
        </telerikDocking:RadSplitContainer>
    </telerikDocking:RadDocking.DocumentHost>
</telerikDocking:RadDocking>

而“目标”的DataContext如下:

代码语言:javascript
复制
public class MyModel : DependencyObject
{
    #region TitleTootip

    /// <summary>
    /// Gets or sets the tool tip for our model
    /// </summary>
    public string TitleTootip
    {
        get { return (string) GetValue(TitleTootipProperty); }
        set { SetValue(TitleTootipProperty, value); }
    }

    /// <summary>
    /// Identifies the <see cref="TitleTootip"/> property.
    /// </summary>
    public static readonly DependencyProperty TitleTootipProperty =
        DependencyProperty.Register("TitleTootip", typeof (string), typeof (MyModel), new UIPropertyMetadata(""));

    #endregion
}

当窗格停靠到DocumentHost中时,这会很好地工作。但是,当我分离窗格时,标题和ToolTip都消失了。

只是为了澄清,如果标题和ToolTip不仅在停靠状态下出现,而且在窗口浮动时出现,那将是非常好的。

纯xaml解决方案无疑是首选。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-06 07:48:07

您可以使用RadPaneTitleTitleTemplate属性来影响ToolWindow标题的模板化方式。它们类似于窗格浮动时使用的HeaderHeaderTemplate

此外,不使用标题/标题模板中的相对源代码,而是通过窗口/UC级别的绑定提供所需的上下文/对象。

我已经更改了你的示例,它可以在我的机器上运行(即当窗格浮动时,我可以看到标题):

代码语言:javascript
复制
<Window.Resources>
    <DataTemplate x:Key="DataTemplateTitleWithTooltip">
        <TextBlock Text="{Binding TitleTootip}"
                   ToolTip="{Binding TitleTootip}"
                   telerik:WindowHost.HitTestable="True"/>
    </DataTemplate>
</Window.Resources>
<telerikDocking:RadDocking>
    <telerikDocking:RadDocking.DocumentHost>
        <telerikDocking:RadSplitContainer>
            <telerikDocking:RadPaneGroup>
                <telerikDocking:RadPane Header="{Binding RelativeSource={RelativeSource Self}, Path=Content.DataContext}"
                                        HeaderTemplate="{StaticResource DataTemplateTitleWithTooltip}"
                                        Title="{Binding RelativeSource={RelativeSource Self}, Path=Content.DataContext}"
                                        TitleTemplate="{StaticResource DataTemplateTitleWithTooltip}">
                    <Border x:Name="Target"
                            Background="HotPink" />
                </telerikDocking:RadPane>
                <telerikDocking:RadPane Header="Pane02">
                    <Border Background="Fuchsia" />
                </telerikDocking:RadPane>
            </telerikDocking:RadPaneGroup>
        </telerikDocking:RadSplitContainer>
    </telerikDocking:RadDocking.DocumentHost>
</telerikDocking:RadDocking>

请注意,我将标题/标题传递给您的内容的完整数据上下文。当然,您可以选择只传递相关的属性。

另外,请注意数据模板中的telerik:WindowHost.HitTestable="True"行。当文本块位于ToolWindow的标题中时,这是“感觉”文本块所在位置所必需的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16951443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档