0

我创建了一个 WPF UserContorl 并在我的 UserContorl 主题中为 ListView 创建了一个样式。

我的列表视图样式:

<Style TargetType="ListView" x:Key="ReminderListView">
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="ItemTemplate">
        <Setter.Value>
            <DataTemplate>
                <CheckBox Style="{StaticResource ReminderCheckBox}" IsChecked="{Binding IsSelected, Mode=TwoWay}" Content="{Binding Title, Mode=OneTime}"/>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

我的 ListView 样式在 UserContorl 中正常工作。

我在 UserControl 中使用的 Xaml:

<ListView Name="snoozeListView" Grid.Column="1" Style="{StaticResource ReminderListView}"  ItemsSource="{Binding ReminderItems}" >

我在其他具有 ListViewItem 样式的 WPF 项目中使用此 UserControl。

ListViewItem 样式:

<Style TargetType="{x:Type ListViewItem}">
    <Setter Property="Foreground" Value="{StaticResource ForegroundBrush}"/>
    <Setter Property="Background" Value="Transparent" />
    <Setter Property="Padding" Value="2,0,2,0"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ListViewItem}">
                <StackPanel SnapsToDevicePixels="True" Margin="2,0,2,0">
                    <Grid x:Name="Grid" Background="Transparent">
                        <Rectangle x:Name="SelectedRect" IsHitTestVisible="False" Fill="{StaticResource SelectedBackgroundBrush}" Opacity="0"/>
                        <GridViewRowPresenter Height="Auto" Margin="2"/>
                    </Grid>
                </StackPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

现在 ListViewItem 样式覆盖了在用户控件主题中定义的 ListView ItemTemplate 样式。

我怎样才能停止覆盖。

4

0 回答 0