如何解决为什么我的UWP App默认会突出显示鼠标悬停的位置?
我不希望应用程序中的元素在被用户悬停时以任何突出显示的方式出现,如下所示:
<ListView>
<TextBlock FontSize="30" Padding="25,25,25" FontWeight="SemiBold">Inputs</TextBlock>
<GridView>
<TextBlock FontSize="24" Padding="25,25">Your Team:</TextBlock>
<ComboBox ></ComboBox>
</GridView>
</ListView>
ListView只是Inputs.xaml中的那个
我尝试在App.xaml中为悬停效果编辑这些颜色,但没有产生如下效果:
<Application.Resources>
<ResourceDictionary>
<SolidColorBrush x:Key="ListViewItemPointerOverBackgroundThemeBrush" Color="Transparent"/>
<SolidColorBrush x:Key="ListViewItemCheckHintThemeBrush" Color="Yellow" />
<SolidColorBrush x:Key="ListViewItemCheckSelectingThemeBrush" Color="Magenta" />
<SolidColorBrush x:Key="ListViewItemCheckThemeBrush" Color="SpringGreen" />
<SolidColorBrush x:Key="ListViewItemDragBackgroundThemeBrush" Color="Red" />
<SolidColorBrush x:Key="ListViewItemDragForegroundThemeBrush" Color="Orange" />
<SolidColorBrush x:Key="ListViewItemFocusBorderThemeBrush" Color="Blue" />
<SolidColorBrush x:Key="ListViewItemOverlayBackgroundThemeBrush" Color="LimeGreen" />
<SolidColorBrush x:Key="ListViewItemOverlayForegroundThemeBrush" Color="ForestGreen" />
<SolidColorBrush x:Key="ListViewItemOverlaySecondaryForegroundThemeBrush" Color="DodgerBlue"/>
<SolidColorBrush x:Key="ListViewItemPlaceholderBackgroundThemeBrush" Color="Cyan" />
<SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="Purple" />
<SolidColorBrush x:Key="ListViewItemSelectedForegroundThemeBrush" Color="White" />
<SolidColorBrush x:Key="ListViewItemSelectedPointerOverBackgroundThemeBrush" Color="DarkTurquoise" />
<SolidColorBrush x:Key="ListViewItemSelectedPointerOverBorderThemeBrush" Color="DarkGray" />
</ResourceDictionary>
</Application.Resources>
这让我发疯了!
解决方法
为什么我的UWP App突出显示默认情况下鼠标悬停的位置?
由于您使用的是ListView和GridView,因此它们在PointerOver
状态或选定状态下都设置了不同的外观。如果要在用户悬停时取消任何突出显示,则需要更改ListView和GridView的样式。在ListView和GridView的默认样式中,当触发PointerOver状态时,它们的PointerOverBackground
属性和RevealBorderThickness
属性将生效。因此,您可以在Application.Resources中更改其值。例如:
<Application.Resources>
<ResourceDictionary>
<SolidColorBrush x:Key="ListViewItemBackgroundPointerOver" Color="Transparent"/>
<Thickness x:Key="ListViewItemRevealBorderThemeThickness">0</Thickness>
<SolidColorBrush x:Key="GridViewItemBackgroundPointerOver" Color="Transparent"/>
<Thickness x:Key="GridViewItemRevealBorderThemeThickness">0</Thickness>
</ResourceDictionary>
</Application.Resources>
但是,ListView和GridView仍处于选定状态,如果您不想选择它们中的任何一项,则可以将其中SelectionMode
个设置为None
。
此外,正如TimTim Wong所说,最好使用StackPanel而不是ListView或GridView来布局控件,它们通常用于显示集合。 StackPanel没有这种状态,您可以直接使用它。例如:
.xaml:
<StackPanel>
<TextBlock FontSize="30" Padding="25,25,25" FontWeight="SemiBold">Inputs</TextBlock>
<StackPanel Orientation="Horizontal">
<TextBlock FontSize="24" Padding="25,25">Your Team:</TextBlock>
<ComboBox VerticalAlignment="Center"></ComboBox>
</StackPanel>
</StackPanel>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。