如何获得具有完整行选择和正确主题的XAML Listview

如何获得具有完整行选择和正确主题的XAML Listview,xaml,listview,themes,Xaml,Listview,Themes,我正在接管一些包含XAML列表视图的代码。我注意到当前的Listview没有完整的行选择;也就是说,您不能单击行中的任何位置来选择项目,但必须单击文本占据的区域。查找此内容时,我尝试向ItemContainerStyle添加HorizontalContentAlignment=“stretch”,但现在这些项目不再使用与对话框其余部分相同的主题(ExpressionDark) 原始XAML代码: Title="SelectUser" Height="350" Width="480" Window

我正在接管一些包含XAML列表视图的代码。我注意到当前的Listview没有完整的行选择;也就是说,您不能单击行中的任何位置来选择项目,但必须单击文本占据的区域。查找此内容时,我尝试向ItemContainerStyle添加HorizontalContentAlignment=“stretch”,但现在这些项目不再使用与对话框其余部分相同的主题(ExpressionDark)

原始XAML代码:

Title="SelectUser" Height="350" Width="480" WindowStartupLocation="CenterScreen" WindowStyle="None" SizeToContent="Height" ResizeMode="NoResize">
<expressionDark:ExpressionDarkTheme>
    <Border BorderBrush="DimGray" BorderThickness="2">
        <StackPanel Margin="12,12,12,12">
            <TextBlock FontSize="16" FontWeight="Bold" HorizontalAlignment="Center" Margin="0,0,0,12">Select User</TextBlock>
                <ListView Name="listViewUsers" Height="200"  Width="400" ItemsSource="{Binding}" SelectionChanged="listViewUsers_SelectionChanged">
                <ListView.View>
            <GridView>
                <GridViewColumn Header="User Id" DisplayMemberBinding="{Binding Path=UserID}" Width="150"/>
                <GridViewColumn Header="User Name" DisplayMemberBinding="{Binding Path=UserName}" Width="250"/>
            </GridView>
        </ListView.View>
    </ListView>
            <UniformGrid Height="23" Rows="1" Columns="2" Margin="0,16,0,12" Width="Auto">
                <Button Name="buttonCancel" HorizontalAlignment="Center" Width="75" Height="23" IsCancel="True" Click="buttonCancel_Click">Cancel</Button>
                <Button Name="buttonOK" HorizontalAlignment="Center" Width="75" Height="23" IsDefault="True" Click="buttonOK_Click">OK</Button>
            </UniformGrid>
        </StackPanel>
    </Border>
</expressionDark:ExpressionDarkTheme>
Title=“SelectUser”Height=“350”Width=“480”WindowStartupLocation=“CenterScreen”WindowStyle=“None”SizeToContent=“Height”ResizeMode=“NoResize”>
选择用户
取消
好啊

但当我添加ItemContainerStyle时,如下所示:

Title="SelectUser" Height="350" Width="480" WindowStartupLocation="CenterScreen" WindowStyle="None" SizeToContent="Height" ResizeMode="NoResize">
<expressionDark:ExpressionDarkTheme>
    <Border BorderBrush="DimGray" BorderThickness="2">
        <StackPanel Margin="12,12,12,12">
            <TextBlock FontSize="16" FontWeight="Bold" HorizontalAlignment="Center" Margin="0,0,0,12">Select User</TextBlock>
                <ListView Name="listViewUsers" Height="200"  Width="400" ItemsSource="{Binding}" SelectionChanged="listViewUsers_SelectionChanged">
                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                    </Style>
                </ListView.ItemContainerStyle>
                <ListView.View>
            <GridView>
                <GridViewColumn Header="User Id" DisplayMemberBinding="{Binding Path=UserID}" Width="150"/>
                <GridViewColumn Header="User Name" DisplayMemberBinding="{Binding Path=UserName}" Width="250"/>
            </GridView>
        </ListView.View>
    </ListView>
            <UniformGrid Height="23" Rows="1" Columns="2" Margin="0,16,0,12" Width="Auto">
                <Button Name="buttonCancel" HorizontalAlignment="Center" Width="75" Height="23" IsCancel="True" Click="buttonCancel_Click">Cancel</Button>
                <Button Name="buttonOK" HorizontalAlignment="Center" Width="75" Height="23" IsDefault="True" Click="buttonOK_Click">OK</Button>
            </UniformGrid>
        </StackPanel>
    </Border>
</expressionDark:ExpressionDarkTheme>
Title=“SelectUser”Height=“350”Width=“480”WindowStartupLocation=“CenterScreen”WindowStyle=“None”SizeToContent=“Height”ResizeMode=“NoResize”>
选择用户
取消
好啊


我是XAML新手,所以我不确定我在这里做错了什么。我是否需要将ExpressionDark主题应用于Listview项目?任何帮助都将不胜感激。

我也遇到过同样的问题。我的所有控件都使用ExpressionDark主题

我就是这样解决这个问题的:

<ListBox HorizontalContentAlignment="Stretch">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid Background="Transparent">
                <!-- here is my custom content -->
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>


在网格元素中添加
Background=“Transparent”
属性后,所有这些都开始正常工作。

如果您已经找到了解决方案,请与我们分享您的解决方案好吗?