gpt4 book ai didi

wpf - 如何定位工具提示底部中心

转载 作者:行者123 更新时间:2023-12-03 21:19:25 25 4
gpt4 key购买 nike

我正在尝试定位我的工具提示,使其位于目标对象的底部和中心。我可以通过 ToolTipService.Postion="Bottom" 将它定位在底部,但如何将它定位在中心?

最佳答案

我同意,可用于定位 ToolTip 的选项有点有限。我认为你必须结合 Placement="Bottom"HorizontalOffset获得底部/中心定位。

居中 ToolTip相对于PlacementTarget您可以使用(PlacementTarget.ActualWidth / 2.0) - (ToolTip.ActualWidth / 2.0)
例子

<Button Content="Test">
<Button.ToolTip>
<ToolTip Content="ToolTip Text"
Placement="Bottom">
<ToolTip.HorizontalOffset>
<MultiBinding Converter="{StaticResource CenterToolTipConverter}">
<Binding RelativeSource="{RelativeSource Self}" Path="PlacementTarget.ActualWidth"/>
<Binding RelativeSource="{RelativeSource Self}" Path="ActualWidth"/>
</MultiBinding>
</ToolTip.HorizontalOffset>
</ToolTip>
</Button.ToolTip>
</Button>

中心工具提示转换器
public class CenterToolTipConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values.FirstOrDefault(v => v == DependencyProperty.UnsetValue) != null)
{
return double.NaN;
}
double placementTargetWidth = (double)values[0];
double toolTipWidth = (double)values[1];
return (placementTargetWidth / 2.0) - (toolTipWidth / 2.0);
}

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}

如果您需要居中几个 ToolTips你可以使用 Style喜欢
<Style x:Key="centeredToolTip" TargetType="ToolTip">
<Setter Property="HorizontalOffset">
<Setter.Value>
<MultiBinding Converter="{StaticResource CenterToolTipConverter}">
<Binding RelativeSource="{RelativeSource Self}" Path="PlacementTarget.ActualWidth"/>
<Binding RelativeSource="{RelativeSource Self}" Path="ActualWidth"/>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>

<!-- ... -->

<Button Content="Test">
<Button.ToolTip>
<ToolTip Style="{StaticResource centeredToolTip}"
Placement="Bottom"
Content="ToolTip Text"/>
</Button.ToolTip>
</Button>

关于wpf - 如何定位工具提示底部中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10972335/

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