确定XAML样式的来源
问题描述:
我在我的UWP应用程序的不同页面上有几个ListView
s。出于某种原因,其中一个似乎沿着底部下方的底部有Padding
,而另一个没有。确定XAML样式的来源
他们都没有底部Padding
指定,所以我想知道这是否可以从父控制继承?我搜索了Padding
的整个XAML,并且它没有设置在其他任何地方。这不是一个大问题,但我更希望我的控件在整个应用程序中保持一致,并且我认为如果没有它,将底部Padding
添加到ListView
似乎很愚蠢,特别是当我不确定第一个首先有Padding
。
是否有某处可以确定在层次结构中设置属性的位置,类似于CSS的工作方式?
这里是他们的样子:
我加了Background
到ListView
控制,以验证没有Padding
有..
因此,它似乎必须来自ListViewItem
本身,但它没有Padding
属性集。
答
问题竟然是在于用正确显示ListView
的父控件的一个(我怎么想它)有一个VerticalAlignment="Top"
集,而其他ListView
的所有的家长都设置为VerticalAlignment="Stretch"
。
我终于能够使XAML Spy正常工作,并且在应用程序运行时预览更改很有帮助,以便我可以确定需要设置VerticalAlignment
的哪个元素,而无需一遍又一遍地重新编译。感谢@ChrisW的推荐。
您可以抓取XAMLSpy或其他等价物。就像那些通常发现很快,但只是寻找设置在特定目标类型(如ListBoxItem或TextBlock或其他)上的样式覆盖。可能不得不看它来告诉。 –
如果列表框的大小设置为其容器的大小,并且列表框的内部大小不是其中一个项目的高度的整数倍,则在最后一项之后必须有空格。 Win32 listboxes做了整体大小调整,但一个快速谷歌表明XAML没有这个概念。 –
P.S.填充区域将具有元素控件的背景颜色;边缘区域不会。所以目的只是表明它不是项目的填充(原则上这是可能的 - 也许项目中的绿色是透明父项的一些内在因素)。 –