WPF:工具提示放置在触摸屏上的行为不同
我有一个带有工具提示的切换按钮:WPF:工具提示放置在触摸屏上的行为不同,wpf,touch,tooltip,Wpf,Touch,Tooltip,我有一个带有工具提示的切换按钮: <ToggleButton Height="32" Width="32"> <Image Width="16" Height="16" Source="{someImage} /> <ToggleButton.ToolTip> <ToolTip Placement="Left" Horizont
<ToggleButton Height="32" Width="32">
<Image Width="16" Height="16" Source="{someImage} />
<ToggleButton.ToolTip>
<ToolTip Placement="Left" HorizontalOffset="-5">
<TextBlock Text="Search"/>
</ToolTip>
</ToggleButton.ToolTip>
</ToggleButton>
你可以试试这个。。。我刚刚在那里写了重要的东西。。。。可能有用
<ToggleButton Height="32" Width="32">
<Image Width="16" Height="16"Source="{someImage} />
<ToggleButton.ToolTip>
<ToolTip Placement="Left !important" HorizontalOffset="-5">
<TextBlock Text="My Tooltip"/>
</ToolTip>
</ToggleButton.ToolTip>
</ToggleButton>
仍然不知道它为什么不能与原始代码正常工作,但我找到了一个修复/解决方法:
我已经将Placement设置为Custom,并实现了ToolTipOpening事件处理程序。在这里,我使用CustomPopupPlacementCallback委托手动设置工具提示的位置:
XAML:
您所描述的可能是由于您电脑的触摸设置造成的,这些设置隐藏得很好。我们遇到了完全相同的问题,改变它们为我们解决了这个问题(尽管我们花了很长时间才找到这个问题…)。使用此解决方案意味着它必须应用于每个安装,因此它可能不适用于所有情况
通过转到以下位置更改这些设置:
控制面板-->硬件和声音-->平板电脑设置
选择“其他”选项卡,然后将设置从右手更改为左手,反之亦然
对于某些版本的Windows 10,此路径不再可用。您可以通过按Windows键+R打开“运行”框到达该路径。键入以下命令并按Enter键
此设置的目的是防止用户用手指挡住弹出窗口的视图,我不知道为什么它会试图干扰您实际指定位置的情况。我收到一个XAML解析异常!重要的。我想这就是CSS语法。是的。。。。好啊正确的。。。。也许这个链接可以给你更好的主意,这就是我正在使用的属性。我在MSDN上找不到任何关于触摸屏的不同行为的文档。但是你可以通过这个来设置图像的位置。。。。。无论如何,我在寻找另一个答案。/…问题是Placement属性在触摸屏上的行为与在其他屏幕上的不同。在(我的)触摸屏上,它的行为与MSDN上记录的不一样。
<ToggleButton Height="32" Width="32" ToolTipOpening="Button_OnToolTipOpening">
<Image Width="16" Height="16" Source="{someImage} />
<ToggleButton.ToolTip>
<ToolTip Placement="Left" HorizontalOffset="-5">
<TextBlock Text="Search"/>
</ToolTip>
</ToggleButton.ToolTip>
</ToggleButton>
private void Button_OnToolTipOpening(object sender, ToolTipEventArgs e)
{
var button = sender as ToggleButton;
if (button == null) return;
var toolTip = button.ToolTip as ToolTip;
if (toolTip != null)
{
toolTip.PlacementTarget = button;
toolTip.Placement = PlacementMode.Custom;
toolTip.CustomPopupPlacementCallback = delegate
{
double offsetY = (button.Height - toolTip.ActualHeight) / 2;
double offsetX = -toolTip.ActualWidth - 5;
return new CustomPopupPlacement[] { new CustomPopupPlacement(new Point(offsetX, offsetY), PopupPrimaryAxis.Horizontal) };
};
}
}
shell:::{80F3F1D5-FECA-45F3-BC32-752C152E456E}