C# 如何在WPF中显示工具提示值?
在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
<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
属性中这样定义项。你的代码甚至可以编译吗?它不应该。。。您应该有一个错误,指出类型“矩形”不支持直接内容。