WPF控制焦点与触摸屏显示器和Windows 10



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

我的开发PC运行的是windows 7,但是将要运行这个应用程序的计算机使用的是windows 10。我不知道这是Windows 10特有的问题还是触摸界面的问题。

我遇到的问题是当使用触摸屏监视器时,触摸控件后会突出显示控件。我不知道如何自动删除这个高光。我试图改变焦点和/或设置可聚焦属性为false。要阻止控件被高亮显示,唯一的方法是触摸屏幕上的其他地方。

但是在Windows 7中使用鼠标,我可以改变焦点,并将focusable属性设置为false;控件根本不接收焦点。

这个程序是在没有键盘(物理或虚拟)或鼠标的情况下使用的。在我看来,突出显示控件是不可取的。

如果您能告诉我如何删除高亮或完全防止高亮,我将不胜感激。

所有的按钮都是高亮显示,而光标是在他们,如果你想,你可以禁用高亮,但它将永远禁用。要做到这一点,创建一个自定义样式,并给你的按钮,我给你一个例子:

<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}" />

希望有帮助

相关内容

  • 没有找到相关文章

最新更新