在WPF桌面应用程序中为ListView创建样式

时间:2013-02-28 12:15:54

标签: c# .net wpf xaml

我有一些Metro / win8应用程序的样式:

    <Style TargetType="ListViewItem">
        <Setter Property="Background" >
            <Setter.Value>
                <SolidColorBrush Color="#FF171717" Opacity="0.70"/>
            </Setter.Value>
        </Setter>
        <Setter Property="BorderBrush" Value="#FFEAF32C" />
        <Setter Property="BorderThickness" Value="2, 0, 0, 0" />

        <Setter Property="Padding" Value="5" />
        <Setter Property="Opacity" Value="40" />
    </Style>

但是现在我正在使用wpf(.net 4.5)创建一个桌面应用程序,并且无法将这样的样式应用于xaml到ListView控件。我们如何在xaml中为Desktop ListView控件定义自己的自定义样式?

1 个答案:

答案 0 :(得分:4)

以下是将样式放在Windows资源字典中的示例。

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <Style TargetType="ListViewItem">
            <Setter Property="Background" >
                <Setter.Value>
                    <SolidColorBrush Color="#FF171717" Opacity="0.70"/>
                </Setter.Value>
            </Setter>
            <Setter Property="BorderBrush" Value="#FFEAF32C" />
            <Setter Property="BorderThickness" Value="2, 0, 0, 0" />

            <Setter Property="Padding" Value="5" />
            <Setter Property="Opacity" Value="40" />
        </Style>
    </Window.Resources>
    <Grid>
        <ScrollViewer HorizontalContentAlignment="Stretch" VerticalAlignment="Stretch">
            <ListView>
                <ListView.Items>
                    <Button>a</Button>
                    <Button>b</Button>
                    <Button>c</Button>
                    <Button>d</Button>
                    <Button>e</Button>
                </ListView.Items>
            </ListView>
        </ScrollViewer>
    </Grid>
</Window>

如果您希望将样式放在其自己的文件中,那么您可以像这样引用该文件(我的资源文件只是调用Dictionary1.xaml)

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Dictionary1.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    <Grid>
        <ScrollViewer HorizontalContentAlignment="Stretch" VerticalAlignment="Stretch">
            <ListView>
                <ListView.Items>
                    <Button>a</Button>
                    <Button>b</Button>
                    <Button>c</Button>
                    <Button>d</Button>
                    <Button>e</Button>
                </ListView.Items>
            </ListView>
        </ScrollViewer>
    </Grid>
</Window>