我为listview创建了一个datatemplate现在我有2个问题第一个是当鼠标聚焦在按钮上我的图像隐藏时你可以在下面的图像上看到它。
problem 1 and 2
两个是项目之间的距离很高,我希望它们的距离只有一行(见下图)
see this image
这是我的datatemplate:
.PNG
答案 0 :(得分:1)
鼠标制作图片消失的问题是因为按钮的默认模板。鼠标悬停时,它会产生蓝色效果。我认为它位于模板内部的边框中,因此它位于背景之上。 您可以重新模板按钮以避免这种情况,如果您只想在其中使用图像。 根据您的具体要求,您可能需要稍微不同但大致不同:
<Button.Template>
<ControlTemplate>
<Border>
<ContentPresenter />
</Border>
</ControlTemplate>
</Button.Template>
您可以将整个模板设为图像。 特别是如果您的图标是一种颜色,我建议使用路径并将您的图标定义为资源字典中的几何图形。 就像这封信: https://social.technet.microsoft.com/wiki/contents/articles/32610.wpf-layout-lab.aspx
您商品之间的差距。 默认的itemcontainer样式中有填充。 您可以通过再次更改模板来避免这种情况:
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<ContentPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
我注意到你的TextBlock也设置了一个边距,我会暂时改变它,看看这是否也是问题的一部分。
<TextBlock Name="txtPhon" Foreground="#7c7f84" HorizontalAlignment="Right" Grid.Column="1" Text="{Binding Path=HomePhoneNumber}"
**Margin="0,0,5,0"/>**
为了探讨这类问题,我发现Snoop非常宝贵。免费。 安装完成后,请在应用后运行。 在运行的窗口上拖动其中一个视线+东西。 将鼠标悬停在可疑的UI上。 按Ctrl + Shift键,它会显示其中的所有控件及其属性。您可以在窗口中更改值,并探索更改会立即产生的影响。