使用触摸屏显示器和Windows 10的WPF控制焦点

时间:2015-09-03 06:38:35

标签: wpf vb.net touch windows-10

我正在使用Visual Studio 2013中的WPF和VB.net开发应用程序。此应用程序将在带有触摸屏监视器的计算机上运行。

我的开发PC正在运行Windows 7,但运行此应用程序的计算机使用的是Windows 10.我不知道这是否是Windows 10或触摸界面的特定问题。

我遇到的问题是使用触摸屏显示器时,触摸控件后会突出显示控件。我无法弄清楚如何自动删除此突出显示。我试图改变焦点和/或将focusable属性设置为false。阻止控件突出显示的唯一方法是触摸屏幕上的其他位置。

但在使用鼠标的Windows 7中,我可以更改焦点并将focusable属性设置为false;控件根本没有得到关注。

此程序在没有键盘(物理或虚拟)或鼠标的情况下使用。在我看来,强调控制是不可取的。

任何有关如何删除突出显示或完全阻止它的建议都将非常感激。

1 个答案:

答案 0 :(得分:1)

当光标在它们上面时,所有按钮都是高亮度的,如果你想要你可以禁用高光,但它总是会被禁用。为此,创建一个自定义样式并将其提供给您的按钮,我举个例子:

<Window.Resources>
    <Style x:Key="CloseButtonStyle" TargetType="Button">
        <Setter Property="OverridesDefaultStyle" Value="True"/>
        <Setter Property="Margin" Value="5"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Name="border" 
                        BorderThickness="1"
                        Padding="4,2" 
                        BorderBrush="Transparent"
                        Background="{TemplateBinding Background}">
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="border" Property="Background" Value="Red" />
                            <Setter TargetName="border" Property="BorderBrush" Value="Transparent" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Window.Resources>

这段代码删除按钮的突出显示,当您使用光标输入时,将背景更改为红色。要将其添加到按钮,请执行以下操作:

<Button x:Name="CloseButton" Style="{StaticResource CloseButtonStyle}" />

希望有所帮助:)