我有一个用细线作为标记的图表,用户可以将鼠标悬停在其上以获取其值。
我想使工具提示激活的区域更大,但保持实际线条的大小相同,因为实际悬停时很难使用。
我还有一条线可供用户拖动,很难获得点击和拖动的精确位置。
这是我的标记模板,但我不知道如何实现这个目标,有人能指出我正确的方向吗?
<Geometry x:Key="LineGeometry">M 0,0 L 5,0 L 5,15 L 0,15 Z</Geometry>
<DataTemplate>
<!-- Define the template for the actual markers -->
<Path Width="10"
Height="10"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Data="{StaticResource LineGeometry}"
Stretch="Fill"
Stroke="{StaticResource BlackBrush}"
StrokeThickness="0.5">
<Path.ToolTip>
<!-- Lots of tooltip definition stuff -->
</Path.ToolTip>
</Path>
</DataTemplate>
答案 0 :(得分:2)
如果我理解正确,您只想在由Path表示的矩形内显示工具提示。如果是这样,您可以将路径包裹在透明边框中并在边框上设置工具提示:
function getOptionDesc(o, e) {
var selected=o.options[o.selectedIndex].text;
var selecteddesc=o.options[o.selectedIndex].label;
var x = e.clientX;
var y = e.clientY;
var coor = "Coordinates: (" + x + "," + y + ")";
console.log(coor);
if (selected!=""){
//Code to display description
}
else{
//code to hide description
}
}
答案 1 :(得分:2)
您的实际问题是您没有使用Fill property
Path
,所以当 创建此形状时,行之间几乎没有任何内容 ,这就是为什么当IsMouseOver
指针位于此Mouse
内时检查shape
属性,它将返回false
。但是,如果您指定Fill property
,结果将符合预期。
如果Fill property
ToolTip
超过visible
形状,请使用Mouse
,如下所示 Path
为 Fill="Transparent"
强>:
<Window.Resources>
<Geometry x:Key="LineGeometry">M 0,0 L 5,0 L 5,15 L 0,15 Z</Geometry>
</Window.Resources>
<StackPanel>
<Path Width="100"
Height="100"
Name="path"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Data="{StaticResource LineGeometry}"
Stretch="Fill"
Stroke="Red" Margin="50"
StrokeThickness="5"
Fill="Transparent"
MouseLeftButtonDown="Path_MouseLeftButtonDown">
<Path.ToolTip>
<TextBlock Text="This is My Tooltip of Path" />
</Path.ToolTip>
</Path>
<StackPanel Orientation="Horizontal">
<Label Content="Is Mouse Over Path : " />
<Label Content="{Binding ElementName=path,Path=IsMouseOver}" BorderThickness="0.5" BorderBrush="Black"/>
</StackPanel>
</StackPanel>
因此,您的输出不会在视觉上受到影响。下面是一个示例程序。
<强> XAML: 强>
Sorry,don't know how to capture
<强> 输出: 强>
<强>
in screenshot, but mouse is in between the shape while image was captured. Remove
鼠标from
填充 属性and then see the change in ouput.
{路径{1}} 强>