Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF:工具提示放置在触摸屏上的行为不同_Wpf_Touch_Tooltip - Fatal编程技术网

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}