WPF的ListView控件自定義布局用法實例
本文實例講述了WPF的ListView控件自定義布局用法。分享給大家供大家參考,具體如下:
概要:
以源碼的形式貼出,免得忘記后,再到網(wǎng)上查資料。在VS2008+SP1環(huán)境下調(diào)試通過
引用的GrayscaleEffect模塊,可根據(jù)參考資料《Grayscale Effect...》中的位置下載。
正文:
如何布局是在App.xaml中定義源碼如下
<Application x:Class="CWebsSynAssistant.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:effect="clr-namespace:GrayscaleEffect;assembly=GrayscaleEffect" StartupUri="Window1.xaml"> <Application.Resources> <!-- ListView的布局模板--> <ControlTemplate x:Key="myLVTemplate" TargetType="{x:Type ListView}"> <Grid> <ScrollViewer x:Name="ScrollViewerElement" Background="White" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled"> <ItemsPresenter> </ItemsPresenter> </ScrollViewer> </Grid> </ControlTemplate> <!-- ListViewItem的布局模板--> <DataTemplate x:Key="myLVItemTemplate"> <Grid Name="myGrid" Width="70" Margin="8,8,0,0"> <Grid.RowDefinitions> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> </Grid.RowDefinitions> <Image Name="img" Source="{Binding Path=ISource}" HorizontalAlignment="Center" Width="32" Height="32" Stretch="UniformToFill" ToolTip="{Binding Path=FullFileName}" > <Image.Effect> <effect:GrayscaleEffect x:Name="grayscaleEffect" DesaturationFactor="1.0"/> </Image.Effect> </Image> <TextBlock Name="imgTitle" Text="{Binding Path=FileName}" Grid.Row="1" HorizontalAlignment="Center" FontSize="10" FontFamily="Arial" ToolTip="{Binding Path=FullFileName}" Margin="4,4,4,4" TextTrimming="CharacterEllipsis" /> </Grid> <DataTemplate.Triggers> <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListViewItem}}, Path=IsSelected}" Value="True"> <Setter TargetName="myGrid" Property="Background" Value="White"/> <Setter TargetName="imgTitle" Property="Background" Value="CadetBlue"/> <Setter TargetName="imgTitle" Property="Foreground" Value="White"/> <Setter TargetName="img" Property="Effect"> <Setter.Value> <effect:GrayscaleEffect DesaturationFactor="0.5"/> </Setter.Value> </Setter> <!-- <Setter TargetName="img" Property="Opacity" Value=".5"></Setter> --> </DataTrigger> </DataTemplate.Triggers> </DataTemplate> <!--下面這段代碼不用,選中的時候邊框有些邊會變成藍色(不是你希望的顏色)--> <Style TargetType="{x:Type ListViewItem}" x:Key="ItemContainerStyle"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListViewItem}"> <Border x:Name="Bd" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" > <ContentPresenter/> </Border> <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="true"> <Setter Property="Background" TargetName="Bd" Value="White"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </Application.Resources> </Application>
如何引用在Windows1.xaml中定義源碼如下
<ListView x:Name="listView1" ItemTemplate="{StaticResource myLVItemTemplate}" Template="{StaticResource myLVTemplate}" ItemContainerStyle="{StaticResource ItemContainerStyle}" Margin="0,4,0,4" MouseDoubleClick="OnLocalFSOpen" Grid.Row="2"> <!--下面定義WarpPanel,使Item項在容器里從左到右從上到下排列--> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <WrapPanel/> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> </ListView>
參考資料:
>>WPF ListBox Tutorial
http://www.c-sharpcorner.com/uploadfile/mahesh/listbox-in-wpf/
>>Drag and drop, cut/copy and paste files with Windows Explorer
http://www.codeproject.com/Articles/14059/Drag-and-drop-cut-copy-and-paste-files-with-Window
>>Data Templating Overview
http://msdn.microsoft.com/en-us/library/ms742521.aspx
>>WPF ListBox Selection Color
http://stackoverflow.com/questions/794792/wpf-listbox-selection-color
>>WPF Tutorial - Using The ListView, Part 3 - In Place Edit
http://www.switchonthecode.com/tutorials/wpf-tutorial-using-the-listview-part-3-in-place-edit
>>Creating a Custom Markup Extension in WPF (and soon, Silverlight)
http://10rem.net/blog/2011/03/09/creating-a-custom-markup-extension-in-wpf-and-soon-silverlight
>>More WPF Custom Effects: Motion Blur and Grayscale Samples
http://windowsclient.net/wpf/wpf35/wpf-35sp1-more-effects.aspx
>>WPF Tutorial - Controls and Layout
http://www.mini.pw.edu.pl/~mossakow/materials/presentations/wpf.3.5/controls_layout/index.html
>>Grayscale Effect - A Pixel Shader Effect in WPF
http://bursjootech.blogspot.com/2008/06/grayscale-effect-pixel-shader-effect-in.html
>>ShaderPad - WPF ShaderEffects
http://shaderpad.codeplex.com/
更多關于C#相關內(nèi)容感興趣的讀者可查看本站專題:《C#窗體操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#程序設計之線程使用技巧總結(jié)》、《C#操作Excel技巧總結(jié)》、《C#中XML文件操作技巧匯總》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#數(shù)組操作技巧總結(jié)》及《C#面向?qū)ο蟪绦蛟O計入門教程》
希望本文所述對大家C#程序設計有所幫助。
上一篇:C#信號量用法簡單示例
欄 目:C#教程
下一篇:在WPF中動態(tài)加載XAML中的控件實例代碼
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6379.html
您可能感興趣的文章
- 01-10C#通過反射獲取當前工程中所有窗體并打開的方法
- 01-10關于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#停止線程的方法
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新聞效果的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已安裝軟件變化的方法
- 01-10C#實現(xiàn)多線程下載文件的方法


閱讀排行
本欄相關
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 04-02jquery與jsp,用jquery
- 01-10C#中split用法實例總結(jié)
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05織夢dedecms什么時候用欄目交叉功能?