列表视图选择显示与没有填充和无勾选标记(Listview selection display wit

2019-07-20 05:50发布

我有此XAML来显示ListViewC++/CX代码。 该ListView将作为一个选择菜单。

<ListView x:Name="itemsListView"
 ItemsSource="{Binding Source={StaticResource MenuDataSourceCVS}}"
 HorizontalAlignment="Stretch"
 Width="230"
 Margin="0,45,0,0"
 VerticalAlignment="Top"
 Grid.Row="1"
 SelectionChanged="itemsListView_SelectionChanged" SelectionMode="Single"
 HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"
 FontFamily="Global User Interface">
 <ListView.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal" Height="40" Width="230">
            <TextBlock Text="{Binding Name}"
                Margin="10,5" Width="150" Height="30"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"/>
            <Border Height="30" Width="30" Margin="5">
                <Image Source="{Binding ImageSrc}" Stretch="Fill"/>
            </Border>
        </StackPanel>
    </DataTemplate>
 </ListView.ItemTemplate>
</ListView>

正如你在图中波纹管的选择看不占所有列在选择时会显示一个对号。

有没有办法消除这种填充和复选标记的方法吗?

Answer 1:

你需要在Blend中打开你的观点,然后用鼠标右键单击列表,然后选择“编辑其他模板” /“编辑生成的项容器(ItemContainerStyle)” /“编辑复制”。 然后,你可以编辑StyleListViewItem由产生ListView时,填入您的项目。 在左侧的“状态”选项卡中可以看到由使用状态ListViewItem 。 当您选择其中之一 - 设计图面显示了在ListViewItem的样子在该状态下,它也切换到录音模式,您可以定义模板的各种元素属性的属性值。 然后你就可以看到哪些元素是通过视觉状态动画的影响,要么修改这些动画或删除元素本身。 如果你在Blend中删除元素-所有相关的可视状态的动画会被自动删除,所以你的情况,你可以看到,在SelectionStates VisualStatesGroupSelected状态改变SelectionBackground元素的Opacity为1,您可以修改该目标Opacity的值它修改到另一所期望的值或简单地删除所有状态SelectionBackground通过在“对象和时间线”面板中选择它元件(它实际上将来自模板对所有状态将其删除,并删除影响它的所有动画)。 然后,你可以同样要删除HintGlyphBorder, SelectingGlyph, SelectedCheckMarkOuter

为了去除填充-确保通过单击微小的红色录音按钮或开关在“状态”选项卡中的当前显示的状态恢复到“基地”以禁用状态记录,然后选择ContentBorder并改变其Margin在“属性”选项卡0,0,0,0和做同样SelectedBorder

下面是混合的注释截图:



文章来源: Listview selection display with no padding and no checkmark