Flyout 上的 VisualStateManager 未突出显示整个区域 [英] VisualStateManager on Flyout not highlighting entire area
本文介绍了Flyout 上的 VisualStateManager 未突出显示整个区域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个 VisualStateManager,当指针悬停在项目上时,它控制背景颜色.问题是,它没有突出显示整个区域,只是文本和图标周围的一小部分.这是我的代码:
当在 Live Visual Tree 中选择 MenuFlyoutItem
时,它的区域会是蓝色的.我的图看不清楚,你可以自己试试.
所以要突出显示整个区域,我们需要让 MenuFlyoutItem
填充完整的 MenuFlyoutPresenter
,为此,我们需要编辑 MenuFlyout
的样式code> 通过设置 MenuFlyoutPresenterStyle
.您可以在 MenuFlyoutPresenter 样式和模板.
要设置MenuFlyoutPresenterStyle
,我们可以从网站或Visual Studio中复制默认样式,在文档大纲"中选择[MenuFlyout]"strong>"并右键单击,然后选择编辑其他模板"→编辑 MenuFlyoutPresenterStyle"→编辑副本...".
在样式中,我们需要将ItemsPresenter
中的Margin
设置为0
那么 MenuFlyoutItem
周围将没有边距.然而这还不够,因为 MenuFlyoutPresenter
有 32 分钟的高度:
<x:Double x:Key="MenuFlyoutThemeMinHeight">32</x:Double>
如果MenuFlyoutItem
的高度小于32,也不能高亮整个区域.要解决这个问题,您可以将 MinHeight
属性设置为 0
.
或者增加MenuFlyoutItem
的高度,比如在你的StackPanel
中设置Margin
:
<SymbolIcon Margin="10,0" Symbol="删除"/><TextBlock Text="{TemplateBinding Text}"/></StackPanel>
完整的 MenuFlyoutPresenterStyle 可能如下所示: