如何在wpf中停止样式覆盖?

时间:2013-08-08 10:36:37

标签: xaml wpf-controls

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

我的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样式。

如何停止覆盖。

0 个答案:

没有答案