如何在WPF中显示工具提示值

本文关键字:显示 工具提示 WPF | 更新日期: 2023-09-27 18:12:31

在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>

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

如何在WPF中显示工具提示值

您可以简单地将TextBlock添加到具有(但之后) Rectangle元素的任何容器控件中,然后将Rectangle.ToolTip的值绑定到TextBlock.Text属性。试试这样做:

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