C# 如何在WPF中显示工具提示值?

C# 如何在WPF中显示工具提示值?,c#,wpf,xaml,tooltip,C#,Wpf,Xaml,Tooltip,在WPF中,我创建了如下矩形: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:Diagram

在WPF中,我创建了如下矩形:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"                    
                    xmlns:s="clr-namespace:DiagramDesigner"
                    xmlns:c="clr-namespace:DiagramDesigner.Controls"
                    x:Class="GeoOvwSample.RectangleGeometryRoundedCornerExample"
                >

<Brush x:Key="ItemStroke">#FFD69436</Brush>
<LinearGradientBrush x:Key="ItemBrush" StartPoint="0,0" EndPoint="0,1">
    <LinearGradientBrush.GradientStops>
        <GradientStop Color="#FAFBE9" Offset="0" />
        <GradientStop Color="Orange" Offset="1" />
    </LinearGradientBrush.GradientStops>
</LinearGradientBrush>

<Brush x:Key="ItemStroke1">#ACADCD</Brush>
<LinearGradientBrush x:Key="ItemBrush1" StartPoint="0,0" EndPoint="0,1" >
    <GradientStop Color="#FEFEFE" Offset="0"/>
    <GradientStop Color="#BDBEDE" Offset="1"/>
</LinearGradientBrush>

<Style x:Key="FlowChartRectangleStyle" TargetType="Rectangle">
    <Setter Property="Fill" Value="{StaticResource ItemBrush}"/>
    <Setter Property="Stroke" Value="{StaticResource ItemStroke}"/>
    <Setter Property="StrokeThickness" Value="1"/>
    <Setter Property="StrokeLineJoin" Value="Round"/>
    <Setter Property="Stretch" Value="Fill"/>
    <Setter Property="IsHitTestVisible" Value="False"/>
    <Setter Property="SnapsToDevicePixels" Value="True"/>    
</Style>

    <Style x:Key="Data" TargetType="Rectangle" BasedOn="{StaticResource FlowChartRectangleStyle}">             
</Style>

<Style x:Key="Data_DragThumb" TargetType="Rectangle" BasedOn="{StaticResource Data}">
    <Setter Property="IsHitTestVisible" Value="true"/>
    <Setter Property="Height" Value="300"/>
    <Setter Property="Width" Value="200"/>        
    <Setter Property="Tag" Value="DataShape" />   
</Style>


<s:Toolbox x:Key="FlowChartStencils" ItemSize="100,90" SnapsToDevicePixels="True"
         ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <ItemsControl.Items>

   <Rectangle Style="{StaticResource Data}" ToolTip="DataTest" StrokeThickness="2">                                
    <s:DesignerItem.DragThumbTemplate>                    
        <ControlTemplate>                        
            <Rectangle Style="{StaticResource Data_DragThumb}" x:Name="DataShape" Tag="DataShapeTag" />
         </ControlTemplate>
     </s:DesignerItem.DragThumbTemplate>                
    </Rectangle>

    </ItemsControl.Items>

    </s:Toolbox>
</ResourceDictionary>

#FFD69436
#ACADCD

这将在面板上显示一个矩形,我可以在GUI中选择并拖动它。现在我想在形状上创建一种文本块,以便它显示其工具提示值,从而工具提示值与形状一起显示。我试图创建textblock并将其绑定为矩形,但不知何故,我的代码不正确。怎么做?还是有更简单的方法?多谢各位

您只需将
TextBlock
添加到带有
Rectangle
元素的任何容器控件中(但在该元素之后),然后将
Rectangle.ToolTip
的值绑定到
TextBlock.Text
属性。试着这样做:

<StackPanel>
    <Rectangle Name="Rectangle" Style="{StaticResource Data}" ToolTip="DataTest" 
        StrokeThickness="2" />
    <TextBlock Text="{Binding ToolTip, ElementName=Rectangle}" />
</StackPanel>


浏览此链接,我正在寻找一种在xaml中实现此功能的方法,而不是在代码隐藏中。有什么建议吗?Silverlight提供了一个名为“ToolTipService”的类,可用于显示Silverlight控件的工具提示。该类可以附加到Silverlight中的大多数UI元素以显示工具提示。请浏览此链接应该会有帮助。我尝试了如您所说的,在“”之后添加了“”,但它不起作用。这可能是因为您使用的是“StackPanel”?因为我的是“s:ToolBox”,而“矩形”在“ItemsControl.Items”里面。这可能是任何原因。。。我看不到你的代码,因此无法评论。我用完整的代码更新了我的问题。你能帮忙吗?用我提供的代码代替你的
矩形
。老实说,你的代码太乱了。。。任何事情都可能出错。我们只是没有在WPF中这样编写XAML。我们通常不会在
ItemsControl.items
属性中这样定义项。你的代码甚至可以编译吗?它不应该。。。您应该有一个错误,指出类型“矩形”不支持直接内容。