ورود

View Full Version : آموزش: تغییر استایل کنترل ListView



kingtak
جمعه 11 اسفند 1391, 10:35 صبح
شاید شما هم خواسته باشید استایل سر ستون های لیست ویو رو به رنگ دلخواهتون تغییر بدید.من خیلی دنبالش گشتم و ترفند ها و آموزش های زیادی پیدا کردم ولی مشکل اکثرشون اینه که خیلی پیچیده هستن.ولی امروز توی یکی از سایتها روش ساده تری برای این کار پیدا کردم که کدشو باتون میذارم.
100708
اول این کد رو قبل از کد گریدتون قرار بدید:(این استایلی هست که رنگ سرستون لیست ویو رو تغییر میده)

<Window.Resources>
<Style x:Key="GridHeaderCenter" TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
<TextBlock Text="{TemplateBinding Content}" Padding="5" Width="{TemplateBinding Width}" TextAlignment="Center">
<TextBlock.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0.0" Color="#FF3C3C3C" />
<GradientStop Offset="1.0" Color="#77797B" />
<GradientStop Color="#FF555658" Offset="0.483"/>
</LinearGradientBrush>
</TextBlock.Background>
</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Background" Value="Green" />
<Setter Property="Foreground" Value="White" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0.0" Color="#373638" />
<GradientStop Offset="1.0" Color="#77797B" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>


حالا این کد رو داخل کد گریدتون قرار بدید


<ListView Height="180" HorizontalAlignment="Left" x:Name="lV" VerticalAlignment="Top" Width="155" d:LayoutOverrides="HorizontalAlignment">
<ListView.View>
<GridView>
<GridViewColumn x:Name="id" Header=" Id" DisplayMemberBinding="{Binding id}" HeaderContainerStyle="{StaticResource GridHeaderCenter}"/>
<GridViewColumn x:Name="name" Header=" Name" DisplayMemberBinding="{Binding name}" HeaderContainerStyle="{StaticResource GridHeaderCenter}"/>
<GridViewColumn x:Name="family" Header="Family" DisplayMemberBinding="{Binding family}" HeaderContainerStyle="{StaticResource GridHeaderCenter}"/>
<GridViewColumn x:Name="mark" Header="Mark" DisplayMemberBinding="{Binding mark}" HeaderContainerStyle="{StaticResource GridHeaderCenter}"/>
</GridView>
</ListView.View>
</ListView>


همونطور که میبینید ستونهای لیست ویو از طریق کد زیر از اون استایل استفاده میکنن:


HeaderContainerStyle="{StaticResource GridHeaderCenter}"


این سورس نمونه (https://skydrive.live.com/redir?resid=5919FFF05EC5848!186&authkey=!ANYQLSc_ylVlP34)