gpt4 book ai didi

c# - 使工具提示区域大于控件

转载 作者:行者123 更新时间:2023-11-30 20:36:23 24 4
gpt4 key购买 nike

我有一个带有细线作为标记的图表,用户可以将鼠标悬停在其上以获取其值。

我想让工具提示激活的区域更大,但保持实际线条的大小相同,因为用户实际上将鼠标悬停在上面非常困难。

我还有一条线可供用户拖动,但很难获得单击和拖动的精确位置。

这是我的标记模板,但我不确定如何实现这个目标,有人能给我指出正确的方向吗?

<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>
  • Visual Studio 2015
  • WPF
  • C#
  • Infragistics XamDataChart

最佳答案

您的实际问题是您没有使用PathFill属性,因此在创建此形状时,线条之间实际上没有任何内容,这就是为什么当 Mouse 指针位于此 shape 内部时检查 IsMouseOver 属性,它将返回 。但是,如果您指定Fill property,结果将符合预期。

如下使用Fill属性如果鼠标,您的工具提示可见位于任何地方的 Path 形状。:

 Fill="Transparent"

因此您的输出不会受到视觉影响。下面是一个示例程序。

XAML:

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

输出:

ToolTip

Sorry,don't know how to captureMousein screenshot, but mouse is in between the shape while image was captured. RemoveFill propertyfromPathand then see the change in ouput.

关于c# - 使工具提示区域大于控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37000833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com