WPF ListView 樣式

来源:http://www.cnblogs.com/lzwsls/archive/2016/03/11/5265952.html
-Advertisement-
Play Games

1 <Style x:Key="{x:Static GridView.GridViewScrollViewerStyleKey}" TargetType="{x:Type ScrollViewer}"> 2 <Setter Property="Focusable" Value="false"/> 3


  1 <Style x:Key="{x:Static GridView.GridViewScrollViewerStyleKey}" TargetType="{x:Type ScrollViewer}">
  2             <Setter Property="Focusable" Value="false"/>
  3             <Setter Property="Template">
  4                 <Setter.Value>
  5                     <ControlTemplate TargetType="{x:Type ScrollViewer}">
  6                         <Grid Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
  7                             <Grid.ColumnDefinitions>
  8                                 <ColumnDefinition Width="*"/>
  9                                 <ColumnDefinition Width="Auto"/>
 10                             </Grid.ColumnDefinitions>
 11                             <Grid.RowDefinitions>
 12                                 <RowDefinition Height="*"/>
 13                                 <RowDefinition Height="Auto"/>
 14                             </Grid.RowDefinitions>
 15                             <DockPanel Margin="{TemplateBinding Padding}">
 16                                 <ScrollViewer DockPanel.Dock="Top" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden">
 17                                     <GridViewHeaderRowPresenter AllowsColumnReorder="{Binding TemplatedParent.View.AllowsColumnReorder, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderContainerStyle="{Binding TemplatedParent.View.ColumnHeaderContainerStyle, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderToolTip="{Binding TemplatedParent.View.ColumnHeaderToolTip, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderStringFormat="{Binding TemplatedParent.View.ColumnHeaderStringFormat, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderContextMenu="{Binding TemplatedParent.View.ColumnHeaderContextMenu, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderTemplate="{Binding TemplatedParent.View.ColumnHeaderTemplate, RelativeSource={RelativeSource TemplatedParent}}" Columns="{Binding TemplatedParent.View.Columns, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderTemplateSelector="{Binding TemplatedParent.View.ColumnHeaderTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
 18                                 </ScrollViewer>
 19                                 <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" KeyboardNavigation.DirectionalNavigation="Local" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
 20                             </DockPanel>
 21                             <ScrollBar x:Name="PART_HorizontalScrollBar" Cursor="Arrow" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0.0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}" Style="{DynamicResource ScrollBarStyle}"/>
 22                             <ScrollBar x:Name="PART_VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0.0" Orientation="Vertical" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}" Style="{DynamicResource ScrollBarStyle}"/>
 23                         </Grid>
 24                     </ControlTemplate>
 25                 </Setter.Value>
 26             </Setter>
 27         </Style>
 28         <Style x:Key="ListViewStyle1" TargetType="{x:Type ListView}">
 29             <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
 30             <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
 31             <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
 32             <Setter Property="ScrollViewer.PanningMode" Value="Both"/>
 33             <Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
 34             <Setter Property="Template">
 35                 <Setter.Value>
 36                     <ControlTemplate TargetType="{x:Type ListView}">
 37                         <ScrollViewer Padding="{TemplateBinding Padding}" Style="{DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}">
 38                             <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
 39                         </ScrollViewer>
 40                         <ControlTemplate.Triggers>
 41                             <MultiTrigger>
 42                                 <MultiTrigger.Conditions>
 43                                     <Condition Property="IsGrouping" Value="true"/>
 44                                     <Condition Property="VirtualizingPanel.IsVirtualizingWhenGrouping" Value="false"/>
 45                                 </MultiTrigger.Conditions>
 46                                 <Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
 47                             </MultiTrigger>
 48                         </ControlTemplate.Triggers>
 49                     </ControlTemplate>
 50                 </Setter.Value>
 51             </Setter>
 52         </Style>
 53         <Style TargetType="{x:Type ListViewItem}">
 54             <Setter Property="Template" >
 55                 <Setter.Value>
 56                     <ControlTemplate TargetType="{x:Type ListBoxItem}">
 57                         <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
 58                             <GridViewRowPresenter VerticalAlignment="Center" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
 59                         </Border>
 60                         <ControlTemplate.Triggers>
 61                             <Trigger Property="IsSelected" Value="True">
 62                                 <Setter Property="BorderThickness" TargetName="Bd" Value="2"></Setter>
 63                                 <Setter Property="BorderBrush" TargetName="Bd" Value="#FF866C"></Setter>
 64                             </Trigger>
 65                             <Trigger Property="IsMouseOver" Value="True">
 66                                 <Setter Property="BorderThickness" TargetName="Bd" Value="2"></Setter>
 67                                 <Setter Property="BorderBrush" TargetName="Bd" Value="#FFEAE4"></Setter>
 68                             </Trigger>
 69                             <Trigger Property="Height" Value="Auto">
 70                                 <Setter Property="MinHeight" Value="35" />
 71                             </Trigger>
 72                             <Trigger Property="IsEnabled" Value="False">                                
 73                                 <Setter Property="Opacity" Value="0.5"/>
 74                             </Trigger>
 75                         </ControlTemplate.Triggers>
 76                     </ControlTemplate>
 77                 </Setter.Value>
 78             </Setter>
 79         </Style>
 80         <Style TargetType="{x:Type GridViewColumnHeader}">
 81             <Setter Property="Background" Value="#FFEAE4" />
 82             <Setter Property="Template" >
 83                 <Setter.Value>
 84                     <ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
 85                         <Grid SnapsToDevicePixels="True" >
 86                             <Border x:Name="HeaderBorder" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
 87                                 <Grid>
 88                                     <Grid.RowDefinitions>
 89                                         <RowDefinition MaxHeight="7"/>
 90                                         <RowDefinition/>
 91                                     </Grid.RowDefinitions>
 92                                     <Border Padding="{TemplateBinding Padding}" Grid.RowSpan="2">
 93                                         <ContentPresenter x:Name="HeaderContent" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
 94                                     </Border>
 95                                 </Grid>
 96                             </Border>
 97                             <Canvas>
 98                                 <Thumb x:Name="PART_HeaderGripper">
 99                                     <Thumb.Style>
100                                         <Style TargetType="{x:Type Thumb}">
101                                             <Setter Property="Canvas.Right" Value="-9"/>
102                                             <Setter Property="Width" Value="18"/>
103                                             <Setter Property="Height" Value="{Binding ActualHeight, RelativeSource={RelativeSource TemplatedParent}}"/>
104                                             <Setter Property="Padding" Value="0"/>
105                                             <Setter Property="Background" Value="White"/>
106                                             <Setter Property="Template">
107                                                 <Setter.Value>
108                                                     <ControlTemplate TargetType="{x:Type Thumb}">
109                                                         <Border Background="Transparent" Padding="{TemplateBinding Padding}">
110                                                             <Rectangle Fill="{TemplateBinding Background}" HorizontalAlignment="Center" Width="1"/>
111                                                         </Border>
112                                                     </ControlTemplate>
113                                                 </Setter.Value>
114                                             </Setter>
115                                         </Style>
116                                     </Thumb.Style>
117                                 </Thumb>
118                             </Canvas>
119                         </Grid>
120                         <ControlTemplate.Triggers>
121                             <Trigger Property="IsMouseOver" Value="True">
122                                 <Setter Property="Background" TargetName="HeaderBorder" Value="#FF866B"/>
123                                 <Setter Property="Background" TargetName="PART_HeaderGripper" Value="Transparent"/>
124                             </Trigger>
125                             <Trigger Property="IsPressed" Value="True">
126                                 <Setter Property="Background" TargetName="HeaderBorder" Value="#FF866B"/>
127                                 <Setter Property="Visibility" TargetName="PART_HeaderGripper" Value="Hidden"/>
128                             </Trigger>
129                             <Trigger Property="Height" Value="Auto">
130                                 <Setter Property="MinHeight" Value="35"/>
131                             </Trigger>
132                             <Trigger Property="IsEnabled" Value="False">
133                                 <Setter Property="Opacity" Value="0.5"/>
134                             </Trigger>
135                         </ControlTemplate.Triggers>
136                     </ControlTemplate>
137                 </Setter.Value>
138             </Setter>
139         </Style>
140         <Style x:Key="VerticalScrollBarPageButton" TargetType="{x:Type RepeatButton}">
141             <Setter Property="OverridesDefaultStyle" Value="true"/>
142             <Setter Property="Background" Value="Transparent"/>
143             <Setter Property="Focusable" Value="false"/>
144             <Setter Property="IsTabStop" Value="false"/>
145             <Setter Property="Template">
146                 <Setter.Value>
147                     <ControlTemplate TargetType="{x:Type RepeatButton}">
148                         <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/>
149                     </ControlTemplate>
150                 </Setter.Value>
151             </Setter>
152         </Style>
153         <Style x:Key="VerticalScrollBarThumb" TargetType="{x:Type Thumb}">
154             <Setter Property="OverridesDefaultStyle" Value="true"/>
155             <Setter Property="IsTabStop" Value="false"/>
156             <Setter Property="Template">
157                 <Setter.Value>
158                     <ControlTemplate TargetType="{x:Type Thumb}">
159                         <Border x:Name="bd" Width="9" CornerRadius="5" Background="#D3D3D3"/>
160                         <ControlTemplate.Triggers>
161                             <Trigger Property="IsMouseOver" Value="True">
162                                 <Setter Property="Background" TargetName="bd" Value="DarkGray" />
163                             </Trigger>
164                         </ControlTemplate.Triggers>
165                     </ControlTemplate>
166                 </Setter.Value>
167             </Setter>
168         </Style>
169         <Style x:Key="HorizontalScrollBarThumb" TargetType="{x:Type Thumb}">
170             <Setter Property="OverridesDefaultStyle" Value="true"/>
171             <Setter Property="IsTabStop" Value="false"/>
172             <Setter Property="Template">
173                 <Setter.Value>
174                     <ControlTemplate TargetType="{x:Type Thumb}">
175                         <Border x:Name="bd" Height="9" CornerRadius="5" Background="#D3D3D3"/>
176                         <ControlTemplate.Triggers>
177                             <Trigger Property="IsMouseOver" Value="True">
178                                 <Setter Property="Background" TargetName="bd" Value="DarkGray" />
179                             </Trigger>
180                         </ControlTemplate.Triggers>
181                     </ControlTemplate>
182                 </Setter.Value>
183             </Setter>
184         </Style>
185         <Style x:Key="HorizontalScrollBarPageButton" TargetType="{x:Type RepeatButton}">
186             <Setter Property="OverridesDefaultStyle" Value="true"/>
187             <Setter Property="Background" Value="Transparent"/>
188             <Setter Property="Focusable" Value="false"/>
189             <Setter Property="IsTabStop" Value="false"/>
190             <Setter Property="Template">
191                 <Setter.Value>
192                     <ControlTemplate TargetType="{x:Type RepeatButton}">
193                         <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/>
194                     </ControlTemplate>
195                 </Setter.Value>
196             </Setter>
197         </Style>
198         
199         <Style x:Key="VerticalScrollBarButtomButton" TargetType="{x:Type RepeatButton}">
200             <Setter Property="OverridesDefaultStyle" Value="true"/>
201             <Setter Property="Focusable" Value="false"/>
202             <Setter Property="IsTabStop" Value="false"/>
203             <Setter Property="Template">
204                 <Setter.Value>
205                     <ControlTemplate TargetType="{x:Type RepeatButton}">
206                         <Path x:Name="path" Data="M 4,6 L 13,6 L 8.5,13 Z" Fill="#D3D3D3" Stroke="#D3D3D3" />
207                         <ControlTemplate.Triggers>
208                             <Trigger Property="IsMouseOver" Value="True">
209                                 <Setter Property="Fill" TargetName="path" Value="DarkGray" />
210                                 <Setter Property="Stroke" TargetName="path" Value="DarkGray" />
211                             </Trigger>
212                             <Trigger Property="IsPressed" Value="True">
213                                 <Setter Property="Fill" TargetName="path" Value="DarkGray" />
214                                 <Setter Property="Stroke" TargetName="path" Value="DarkGray" />
215                             </Trigger>
216                         </ControlTemplate.Triggers>
217                     </ControlTemplate>
218                 </Setter.Value>
219             </Setter>
220         </Style>
221         <Style x:Key="VerticalScrollBarTopButton" TargetType="{x:Type RepeatButton}">
222             <Setter Property="OverridesDefaultStyle" Value="true"/>
223             <Setter Property="Focusable" Value="false"/>
224             <Setter Property="IsTabStop" Value="false"/>
225             <Setter Property="Template">
226                 <Setter.Value>
227                     <ControlTemplate TargetType="{x:Type RepeatButton}">
228                         <Path x:Name="path" Data="M 4,10 L 13,10 L 8.5,3 Z" Fill="#D3D3D3" Stroke="#D3D3D3" />
229                         <ControlTemplate.Triggers>
230                             <Trigger Property="IsMouseOver" Value="True">
231                                 <Setter Property="Fill" TargetName="path" Value="DarkGray" />
232                                 <Setter Property="Stroke" TargetName="path" Value="DarkGray" />
233                             </Trigger>
234                             <Trigger Property="IsPressed" Value="True">
235                                 <Setter Property="Fill" TargetName="path" Value="DarkGray" />
236                                 <Setter Property="Stroke" TargetName="path" Value="DarkGray" />
237                             </Trigger>
238                         </ControlTemplate.Triggers>
239                     </ControlTemplate>
240                 </Setter.Value>
241             </Setter>
242         </Style>
243         <Style x:Key="HorizontalScrollBarLeftButton" TargetType="{x:Type RepeatButton}">
244             <Setter Property="OverridesDefaultStyle" Value="true"/>
245             <Setter Property="Focusable" Value="false"/>
246             <Setter Property="IsTabStop" Value="false"/>
247             <Setter Property="Template">
248                 <Setter.Value>
249                     <ControlTemplate TargetType="{x:Type RepeatButton}">
250                         <Path x:Name="path" Data="M 10,4 L 10,13 L 3, 8.5 Z" Fill="#D3D3D3" Stroke="#D3D3D3" />
251                         <ControlTemplate.Triggers>

              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 自定義條形進度條(iOS) ViewController.m文件 #import "ViewController.h" @interface ViewController () @property(strong,nonatomic)UIButton *btnBegin; @property(stro
  • 在保密你的伺服器和數據,防備當前複雜的攻擊,SQL Server有你需要的一切。但在你能有效使用這些安全功能前,你需要理解你面對的威脅和一些基本的安全概念。這篇文章提供了基礎,因此你可以對SQL Server里的安全功能充分利用,不用在面對特定威脅,不能保護你數據的功能上浪費時間。 從讓人眼花繚亂的
  • 嘿嘿嘿,題目比較繞哈。本篇主要討論一般情況下,頁面的佈局技巧,怎麼將元素的展現儘量做到解析度無關。基本的思路仍然是儘量少的標定具體的數字,而是用比列來標註各元素占據的空間。 這裡我打算用易信的名片頁來舉例: Phone的界面看起來不錯,大致以縱向排列。最上方是標題欄,頭像部分居中,下麵的文字以列表形
  • 開篇 非同步編程是程式設計的重點也是難點,還記得在剛開始接觸.net的時候,看的是一本c#的Winform實例教程,上面大部分都是教我們如何使用Winform的控制項以及操作資料庫的實例,那時候做的基本都是資料庫的demo,數據量也不大,程式在執行的時候基本上不會出現阻塞的情況。隨著不斷的深入.net,
  • 介於網路上充斥著大量的含糊其辭的Socket初級教程,擾亂著新手的學習方向,我來扼要的教一下新手應該怎麼合理的處理Socket這個玩意兒。 一般來說,教你C#下Socket編程的老師,很少會教你如何解決Socket粘包、半包問題。 更甚至,某些師德有問題的老師,根本就沒跟你說過Socket的粘包、半
  • 通過Unity依賴鏈跟蹤,給不同的對象註入不同的Logger,使得日誌記錄器的使用更加舒適。
  • 主要使用了Windows API 實現,你可以在你C盤下的system32文件夾中找到user32.dll,函數的說明在MSDN都有,只需要拿名字去搜一下就行 根據視窗的類名和視窗名稱獲取視窗句柄,成功返回一個視窗的句柄,否則返回0: [DllImport("User32.dll", EntryPo
  • Entity Framework Power Tools是一個由EntityFramework開發小組提供的工具,它可以從現有資料庫生成Fluent款式的Code First代碼。 大致來說,這個工具有這樣幾個功能:1) 按照現有資料庫結構,生成Code First POCO class、DbCon
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...