国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

WPF實現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享

2019-10-29 21:37:47
字體:
供稿:網(wǎng)友

最近在網(wǎng)上看到了新版的360安全衛(wèi)士,感覺界面還不錯,于是用WPF制作了一個,時間有限,一些具體的控件沒有制作,用圖片代替了。感興趣的朋友一起跟著小編學習WPF實現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享

下面通過圖文并茂的方式給大家介紹WPF實現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享,點擊此處下載源碼哦。

以前學習Windows Form編程的時候,總感覺自己做的界面很丑,看到360安全衛(wèi)士、迅雷等軟件的UI設(shè)計都非常美觀,心里總是憧憬著要是自己能實現(xiàn)這樣的UI效果該多好!!!另一個困擾我的問題是,這個UI皮膚是如何用技術(shù)實現(xiàn)的呢?!雖然好多年過去了,但心里的憧憬和疑惑一直沒有消失,而且越來越強烈。在日常的工作和學習中,自己在網(wǎng)上也經(jīng)常留意類似的技術(shù)或者文章。最近在學習WPF的過程中,看到網(wǎng)上也有仿360和仿迅雷UI設(shè)計的資源,通過對資源的學習和自己的動手實踐,終于實現(xiàn)了下面的仿360安全衛(wèi)士界面:

WPF實現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享

由于項目文件比較多,這里羅列出核心的過程和代碼:

1、VS解決方案結(jié)構(gòu):

WpfPageTransitions是一個WPF類庫,實現(xiàn)UI頁面切換動畫效果,支持多種動畫,可以通過TransitionType屬性進行設(shè)置,其原理是定義了多個切換動畫類型的Storyboard,程序根據(jù)配置的TransitionType去執(zhí)行匹配的Storyboard動畫(分出入動畫,xxxxxxIn和xxxxxxOut)。360UI是一個WPF 桌面應(yīng)用程序,styles文件夾下存放了定義的按鈕樣式、菜單項樣式、頁簽樣式等樣式和需要的所有UI切圖資源。pages文件夾下存放切換的詳細子頁面。

WPF實現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享

(備注:圖片資源和部分文件來自互聯(lián)網(wǎng),特別感謝KXFang360項目提供的360整套配圖和布局文件)

2、頁面切換控件核心代碼:

 

 
  1. <UserControl x:Class="WpfPageTransitions.PageTransition" 
  2. xmlns="http://schemas.microsoft.com/winfx//xaml/presentation" 
  3. xmlns:x="http://schemas.microsoft.com/winfx//xaml" 
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/" 
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/" 
  6. xmlns:local="clr-namespace:WpfPageTransitions" 
  7. mc:Ignorable="d" 
  8. d:DesignHeight="" d:DesignWidth=""
  9. <UserControl.Resources> 
  10. <Style TargetType="{x:Type ContentPresenter}"
  11. <Setter Property="LayoutTransform"
  12. <Setter.Value> 
  13. <ScaleTransform /> 
  14. </Setter.Value> 
  15. </Setter> 
  16. </Style> 
  17. <local:CenterConverter x:Key="centerConverter"/> 
  18. <!-- Slide and Fade --> 
  19. <Storyboard x:Key="SlideAndFadeIn" > 
  20. <ThicknessAnimation Duration="::." Storyboard.TargetProperty="Margin" From=",,-," To="" DecelerationRatio="." /> 
  21. <DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" From="" To="" /> 
  22. </Storyboard> 
  23. <Storyboard x:Key="SlideAndFadeOut"
  24. <ThicknessAnimation Duration="::." Storyboard.TargetProperty="Margin" To="-,,," AccelerationRatio="."/> 
  25. <DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" To="" /> 
  26. </Storyboard> 
  27. <!-- Fade --> 
  28. <Storyboard x:Key="FadeIn" > 
  29. <DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" From="" To="" /> 
  30. </Storyboard> 
  31. <Storyboard x:Key="FadeOut"
  32. <DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" To="" /> 
  33. </Storyboard> 
  34. <!-- Slide --> 
  35. <Storyboard x:Key="SlideIn" > 
  36. <ThicknessAnimation Duration="::." Storyboard.TargetProperty="Margin" From=",,-," To="" DecelerationRatio="." /> 
  37. </Storyboard> 
  38. <Storyboard x:Key="SlideOut"
  39. <ThicknessAnimation Duration="::." Storyboard.TargetProperty="Margin" To="-,,," AccelerationRatio="."/> 
  40. </Storyboard> 
  41. <!-- Grow --> 
  42. <Storyboard x:Key="GrowIn" > 
  43. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" From="" To="" Duration="::." DecelerationRatio="." /> 
  44. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" From="" To="" Duration="::." DecelerationRatio="." /> 
  45. </Storyboard> 
  46. <Storyboard x:Key="GrowOut"
  47. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" To="" Duration="::." AccelerationRatio="." /> 
  48. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" To="" Duration="::." AccelerationRatio="." /> 
  49. </Storyboard> 
  50. <!-- Grow and Fade --> 
  51. <Storyboard x:Key="GrowAndFadeIn" > 
  52. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" From="" To="" Duration="::." DecelerationRatio="." /> 
  53. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" From="" To="" Duration="::." DecelerationRatio="." /> 
  54. <DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" From="" To="" /> 
  55. </Storyboard> 
  56. <Storyboard x:Key="GrowAndFadeOut"
  57. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" To="" Duration="::." AccelerationRatio="." /> 
  58. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" To="" Duration="::." AccelerationRatio="." /> 
  59. <DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" To="" /> 
  60. </Storyboard> 
  61. <!-- Flip --> 
  62. <Storyboard x:Key="FlipIn" > 
  63. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleX)" From="-" To="" Duration="::." DecelerationRatio="." /> 
  64. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleY)" From="-" To="" Duration="::." DecelerationRatio="." /> 
  65. </Storyboard> 
  66. <Storyboard x:Key="FlipOut"
  67. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleX)" To="" Duration="::." AccelerationRatio="." /> 
  68. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleY)" To="" Duration="::." AccelerationRatio="." /> 
  69. </Storyboard> 
  70. <!-- Flip and Fade --> 
  71. <Storyboard x:Key="FlipAndFadeIn" > 
  72. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleX)" From="-" To="" Duration="::." DecelerationRatio="." /> 
  73. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleY)" From="-" To="" Duration="::." DecelerationRatio="." /> 
  74. <DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" From="" To="" /> 
  75. </Storyboard> 
  76. <Storyboard x:Key="FlipAndFadeOut"
  77. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleX)" To="" Duration="::." AccelerationRatio="." /> 
  78. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(SkewTransform.AngleY)" To="" Duration="::." AccelerationRatio="." /> 
  79. <DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" To="" /> 
  80. </Storyboard> 
  81. <!-- Spin --> 
  82. <Storyboard x:Key="SpinIn" > 
  83. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(RotateTransform.Angle)" From="-" To="" Duration="::." DecelerationRatio="." /> 
  84. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" From="" To="" Duration="::." DecelerationRatio="." /> 
  85. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" From="" To="" Duration="::." DecelerationRatio="." />  
  86. </Storyboard> 
  87. <Storyboard x:Key="SpinOut"
  88. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(RotateTransform.Angle)" To="" Duration="::." AccelerationRatio="." /> 
  89. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" To="" Duration="::." AccelerationRatio="." /> 
  90. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" To="" Duration="::." AccelerationRatio="." /> 
  91. </Storyboard> 
  92. <!-- Spin and Fade --> 
  93. <Storyboard x:Key="SpinAndFadeIn" > 
  94. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(RotateTransform.Angle)" From="-" To="" Duration="::." DecelerationRatio="." /> 
  95. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" From="" To="" Duration="::." DecelerationRatio="." /> 
  96. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" From="" To="" Duration="::." DecelerationRatio="." /> 
  97. <DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" From="" To="" /> 
  98. </Storyboard> 
  99. <Storyboard x:Key="SpinAndFadeOut"
  100. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(RotateTransform.Angle)" To="" Duration="::." AccelerationRatio="." /> 
  101. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleX)" To="" Duration="::." AccelerationRatio="." /> 
  102. <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[].(ScaleTransform.ScaleY)" To="" Duration="::." AccelerationRatio="." /> 
  103. <DoubleAnimation Duration="::." Storyboard.TargetProperty="Opacity" To="" /> 
  104. </Storyboard> 
  105. </UserControl.Resources> 
  106. <Grid Name="page"
  107. <ContentControl Name="contentPresenter" > 
  108. <ContentControl.RenderTransform> 
  109. <TransformGroup> 
  110. <ScaleTransform ScaleX="" ScaleY="" 
  111. CenterX="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualWidth, Converter={StaticResource centerConverter}}" 
  112. CenterY="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualHeight, Converter={StaticResource centerConverter}}" /> 
  113. <SkewTransform AngleX="" AngleY="" 
  114. CenterX="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualWidth, Converter={StaticResource centerConverter}}" 
  115. CenterY="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualHeight, Converter={StaticResource centerConverter}}" /> 
  116. <RotateTransform Angle="" 
  117. CenterX="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualWidth, Converter={StaticResource centerConverter}}" 
  118. CenterY="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualHeight, Converter={StaticResource centerConverter}}" /> 
  119. <TranslateTransform X="" Y="" /> 
  120. </TransformGroup> 
  121. </ContentControl.RenderTransform> 
  122. </ContentControl> 
  123. </Grid> 
  124. </UserControl> 
  125.  
  126. using System; 
  127. using System.Collections.Generic; 
  128. using System.Linq; 
  129. using System.Text; 
  130. using System.Windows; 
  131. using System.Windows.Controls; 
  132. using System.Windows.Data; 
  133. using System.Windows.Documents; 
  134. using System.Windows.Input; 
  135. using System.Windows.Media; 
  136. using System.Windows.Media.Imaging; 
  137. using System.Windows.Navigation; 
  138. using System.Windows.Shapes; 
  139. using System.Threading.Tasks; 
  140. using System.Windows.Media.Animation; 
  141. namespace WpfPageTransitions 
  142. public partial class PageTransition : UserControl 
  143. Stack<UserControl> pages = new Stack<UserControl>(); 
  144. public UserControl CurrentPage { get; set; } 
  145. public static readonly DependencyProperty TransitionTypeProperty = DependencyProperty.Register("TransitionType"
  146. typeof(PageTransitionType), 
  147. typeof(PageTransition), new PropertyMetadata(PageTransitionType.SlideAndFade)); 
  148. public PageTransitionType TransitionType 
  149. get 
  150. return (PageTransitionType)GetValue(TransitionTypeProperty); 
  151. set 
  152. SetValue(TransitionTypeProperty, value); 
  153. public PageTransition() 
  154. InitializeComponent(); 
  155. }  
  156. public void ShowPage(UserControl newPage) 
  157. {  
  158. pages.Push(newPage); 
  159. Task.Factory.StartNew(() => ShowNewPage()); 
  160. void ShowNewPage() 
  161. Dispatcher.Invoke((Action)delegate 
  162. if (contentPresenter.Content != null
  163. UserControl oldPage = contentPresenter.Content as UserControl; 
  164. if (oldPage != null
  165. oldPage.Loaded -= newPage_Loaded; 
  166. UnloadPage(oldPage); 
  167. else 
  168. ShowNextPage(); 
  169. }); 
  170. void ShowNextPage() 
  171. UserControl newPage = pages.Pop(); 
  172. newPage.Loaded += newPage_Loaded; 
  173. contentPresenter.Content = newPage; 
  174. void UnloadPage(UserControl page) 
  175. Storyboard hidePage = (Resources[string.Format("{}Out", TransitionType.ToString())] as Storyboard).Clone(); 
  176. hidePage.Completed += hidePage_Completed; 
  177. hidePage.Begin(contentPresenter); 
  178. void newPage_Loaded(object sender, RoutedEventArgs e) 
  179. Storyboard showNewPage = Resources[string.Format("{}In", TransitionType.ToString())] as Storyboard; 
  180. showNewPage.Begin(contentPresenter); 
  181. CurrentPage = sender as UserControl; 
  182. }  
  183. void hidePage_Completed(object sender, EventArgs e) 
  184. contentPresenter.Content = null
  185. ShowNextPage(); 
  186. }  

3、Like360Main核心代碼為:

其中AllowsTransparency="True" WindowStyle="None" Background="{x:Null}"的目的是讓WPF窗體隱藏默認的邊框,這樣可以允許用背景圖片填充WPF定義窗體外觀。在這區(qū)間可以自定義關(guān)閉、最小化和最大化按鈕等。

MouseLeftButtonDown="Window_MouseLeftButtonDown" 目的是為了支持窗體拖動。FontFamily="SimSun" TextOptions.TextFormattingMode="Display"的目的是為了解決WPF中文字體顯示模糊的問題。

 

 
  1. <Window x:Class="_UI.LikeMain" 
  2. xmlns="http://schemas.microsoft.com/winfx//xaml/presentation" 
  3. xmlns:x="http://schemas.microsoft.com/winfx//xaml" 
  4. Title="LikeMain" Height="" Width="" 
  5. FontFamily="SimSun" 
  6. AllowsTransparency="True" WindowStyle="None" 
  7. xmlns:pageTransitions="clr-namespace:WpfPageTransitions;assembly=WpfPageTransitions" 
  8. Background="{x:Null}" MouseLeftButtonDown="Window_MouseLeftButtonDown" TextOptions.TextFormattingMode="Display" > 
  9. <Window.Resources> 
  10. <LinearGradientBrush x:Key="MyBrush" EndPoint=".," StartPoint=".,"
  11. <GradientStop Color="#CFFFFFFF"/> 
  12. <GradientStop Color="#FFEBDD" Offset=""/> 
  13. </LinearGradientBrush> 
  14. </Window.Resources> 
  15. <Border BorderBrush="Black" BorderThickness="" CornerRadius="" Margin=""
  16. <Border.Effect> 
  17. <DropShadowEffect ShadowDepth="" Opacity="."/> 
  18. </Border.Effect> 
  19. <Border.Background> 
  20. <ImageBrush ImageSource="styles/skin/frame.jpg"/> 
  21. </Border.Background> 
  22. <Grid> 
  23. <Grid.RowDefinitions> 
  24. <RowDefinition Height="."/> 
  25. <RowDefinition Height="."/> 
  26. <RowDefinition/> 
  27. <RowDefinition Height="."/> 
  28. </Grid.RowDefinitions> 
  29. <!--上標題欄--> 
  30. <Label Content="安全衛(wèi)士界面" HorizontalAlignment="Left" Width="." Foreground="#AEFF" FontWeight="Bold" TextOptions.TextFormattingMode="Display"/> 
  31. <Rectangle Margin="" Stroke="Black" HorizontalAlignment="Right" Width="." Grid.Row="" StrokeThickness=""
  32. <Rectangle.Fill> 
  33. <ImageBrush ImageSource="styles/skin/logo.png" Stretch="Uniform"/> 
  34. </Rectangle.Fill> 
  35. </Rectangle> 
  36. <Button Content="x" HorizontalAlignment="Right" Margin=",,.," Style="{DynamicResource SysButtonStyle}" Width="." Name="closeButton" Click="closeButton_Click" /> 
  37. <Button Content="max" HorizontalAlignment="Right" Margin=",,.," Style="{DynamicResource MaxButtonStyle}" Width="." Name="maxButton" Click="maxButton_Click"
  38. <Button.Background> 
  39. <ImageBrush ImageSource="styles/skin/Button/MAX.png" Stretch="Uniform"/> 
  40. </Button.Background> 
  41. </Button> 
  42. <Button Content="mni" HorizontalAlignment="Right" Margin=",,.," Style="{DynamicResource MaxButtonStyle}" Width="." Name="mniButton" Click="mniButton_Click"
  43. <Button.Background> 
  44. <ImageBrush ImageSource="styles/skin/Button/MNI.png" Stretch="Uniform"/> 
  45. </Button.Background> 
  46. </Button> 
  47. <Button x:Name="menuButton" HorizontalAlignment="Right" Margin=",,.," Style="{DynamicResource MButtonStyle}" Width="." Click="menuButton_Click"
  48. <Button.Background> 
  49. <ImageBrush ImageSource="styles/skin/Button/M.png" Stretch="Uniform"/> 
  50. </Button.Background> 
  51. </Button> 
  52. <Popup x:Name="Menu" AllowsTransparency="True" Margin=",-,," PlacementTarget="{Binding ElementName=menuButton}" StaysOpen="False" PopupAnimation="Scroll"
  53. <Grid Height="." Width="" Margin="" HorizontalAlignment="Left"
  54. <Border BorderThickness="" CornerRadius="" Background="#FFEFEFEF" Margin=""
  55. <Border.Effect> 
  56. <DropShadowEffect ShadowDepth="" Opacity="."/> 
  57. </Border.Effect> 
  58. <StackPanel Margin=","
  59. <MenuItem Header="設(shè) 置" Style="{DynamicResource MenuItemStyle}"/> 
  60. <MenuItem Header="更 新"/> 
  61. <MenuItem Header="關(guān) 于"/> 
  62. <MenuItem Header="退 出"/> 
  63. </StackPanel> 
  64. </Border> 
  65. </Grid> 
  66. </Popup> 
  67. <Rectangle Stroke="Black" StrokeThickness="" Width="" Margin=",,.,." HorizontalAlignment="Right" Height=""
  68. <Rectangle.Fill> 
  69. <LinearGradientBrush EndPoint=".," StartPoint=".,"
  70. <GradientStop Color="#"/> 
  71. <GradientStop Offset="" Color="#ADDD"/> 
  72. </LinearGradientBrush> 
  73. </Rectangle.Fill> 
  74. </Rectangle> 
  75. <Rectangle Stroke="Black" StrokeThickness="" Width="" Margin=",,.,." HorizontalAlignment="Right" Height=""
  76. <Rectangle.Fill> 
  77. <LinearGradientBrush EndPoint=".," StartPoint=".,"
  78. <GradientStop Color="#"/> 
  79. <GradientStop Offset="" Color="#ADDD"/> 
  80. </LinearGradientBrush> 
  81. </Rectangle.Fill> 
  82. </Rectangle> 
  83. <Rectangle Stroke="Black" StrokeThickness="" Width="" Margin=",,.,." HorizontalAlignment="Right" Height=""
  84. <Rectangle.Fill> 
  85. <LinearGradientBrush EndPoint=".," StartPoint=".,"
  86. <GradientStop Color="#"/> 
  87. <GradientStop Offset="" Color="#ADDD"/> 
  88. </LinearGradientBrush> 
  89. </Rectangle.Fill> 
  90. </Rectangle> 
  91. <Rectangle Height="" Margin=",,.," Stroke="Black" StrokeThickness="" VerticalAlignment="Top"
  92. <Rectangle.Fill> 
  93. <LinearGradientBrush EndPoint=".," StartPoint=".,"
  94. <GradientStop Color="#FFFFFF"/> 
  95. <GradientStop Offset="" Color="#ADDD"/> 
  96. </LinearGradientBrush> 
  97. </Rectangle.Fill> 
  98. </Rectangle> 
  99. <!--上導(dǎo)航欄--> 
  100. <TabControl Name="tab" Grid.RowSpan="" Margin="" Style="{DynamicResource TabControlStyle}" Grid.Row="" Background="{x:Null}" SelectionChanged="TabControl_SelectionChanged"
  101. <TabItem Header="電腦體驗" Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}" TextOptions.TextFormattingMode="Display"
  102. <TabItem.Background> 
  103. <ImageBrush ImageSource="styles/skin/ico/ico_Examine.png"/> 
  104. </TabItem.Background> 
  105. <Grid Margin="" Background="{DynamicResource MyBrush}"
  106. <Grid.ColumnDefinitions> 
  107. <ColumnDefinition Width=".*"/> 
  108. <ColumnDefinition Width=".*"/> 
  109. <ColumnDefinition Width=".*"/> 
  110. </Grid.ColumnDefinitions> 
  111. <Grid.RowDefinitions> 
  112. <RowDefinition Height="."/> 
  113. <RowDefinition Height="."/> 
  114. <RowDefinition Height="."/> 
  115. <RowDefinition Height="."/> 
  116. </Grid.RowDefinitions> 
  117. <!--詳細--> 
  118. <Label Content="電腦體檢" HorizontalAlignment="Left" Margin="" Width="." Height="" FontSize="." FontWeight="Bold" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" /> 
  119. <pageTransitions:PageTransition Name="pTransitionControl_" Margin="" TransitionType="SlideAndFade" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" Grid.RowSpan=""/> 
  120. </Grid> 
  121. </TabItem> 
  122. <TabItem Header="查殺木馬" Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}"
  123. <TabItem.Background> 
  124. <ImageBrush ImageSource="styles/skin/ico/ico_dsmain.png"/> 
  125. </TabItem.Background> 
  126. <Grid Margin="" Background="{DynamicResource MyBrush}"
  127. <Grid.ColumnDefinitions> 
  128. <ColumnDefinition Width=".*"/> 
  129. <ColumnDefinition Width=".*"/> 
  130. <ColumnDefinition Width=".*"/> 
  131. </Grid.ColumnDefinitions> 
  132. <Grid.RowDefinitions> 
  133. <RowDefinition Height="."/> 
  134. <RowDefinition Height="."/> 
  135. <RowDefinition Height="."/> 
  136. <RowDefinition Height="."/> 
  137. </Grid.RowDefinitions> 
  138. <!--詳細--> 
  139. <Label Content="查殺木馬" HorizontalAlignment="Left" Margin="" Width="." Height="" FontSize="." FontWeight="Bold" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" /> 
  140. <pageTransitions:PageTransition Name="pTransitionControl_" Margin="" TransitionType="SlideAndFade" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" Grid.RowSpan=""/> 
  141. </Grid> 
  142. </TabItem> 
  143. <TabItem Header="清理插件" Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}"
  144. <TabItem.Background> 
  145. <ImageBrush ImageSource="styles/skin/ico/ico_PluginCleaner.png"/> 
  146. </TabItem.Background> 
  147. <Grid Margin="" Background="{DynamicResource MyBrush}"
  148. <Grid.ColumnDefinitions> 
  149. <ColumnDefinition Width=".*"/> 
  150. <ColumnDefinition Width=".*"/> 
  151. <ColumnDefinition Width=".*"/> 
  152. </Grid.ColumnDefinitions> 
  153. <Grid.RowDefinitions> 
  154. <RowDefinition Height="."/> 
  155. <RowDefinition Height="."/> 
  156. <RowDefinition Height="."/> 
  157. <RowDefinition Height="."/> 
  158. </Grid.RowDefinitions> 
  159. <!--詳細--> 
  160. <Label Content="清理插件" HorizontalAlignment="Left" Margin="" Width="." Height="" FontSize="." FontWeight="Bold" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" /> 
  161. <pageTransitions:PageTransition Name="pTransitionControl_" Margin="" TransitionType="SlideAndFade" Grid.Column="" Grid.Row="" Grid.ColumnSpan="" Grid.RowSpan=""/> 
  162. </Grid> 
  163. </TabItem> 
  164. <TabItem Header="修復(fù)漏洞" Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}"
  165. <TabItem.Background> 
  166. <ImageBrush ImageSource="styles/skin/ico/ico_VulRepair.png"/> 
  167. </TabItem.Background> 
  168. <Grid Background="{DynamicResource MyBrush}"/> 
  169. </TabItem> 
  170. <TabItem Header="清理垃圾" Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}"
  171. <TabItem.Background> 
  172. <ImageBrush ImageSource="styles/skin/ico/ico_RubbishCleaner.png"/> 
  173. </TabItem.Background> 
  174. <Grid Background="{DynamicResource MyBrush}"/> 
  175. </TabItem> 
  176. <TabItem Header="清理痕跡" Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}"
  177. <TabItem.Background> 
  178. <ImageBrush ImageSource="styles/skin/ico/ico_TraceCleaner.png"/> 
  179. </TabItem.Background> 
  180. <Grid Background="{DynamicResource MyBrush}"/> 
  181. </TabItem> 
  182. <TabItem Header="系統(tǒng)修復(fù)" Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}"
  183. <TabItem.Background> 
  184. <ImageBrush ImageSource="styles/skin/ico/ico_SysRepair.png"/> 
  185. </TabItem.Background> 
  186. <Grid Background="{DynamicResource MyBrush}"/> 
  187. </TabItem> 
  188. <TabItem Header="功能大全" Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}"
  189. <TabItem.Background> 
  190. <ImageBrush ImageSource="styles/skin/ico/ico_AdvTools.png"/> 
  191. </TabItem.Background> 
  192. <Grid Background="{DynamicResource MyBrush}"/> 
  193. </TabItem> 
  194. <TabItem Header="軟件管家" Height="" Margin=",,," Width="" Style="{DynamicResource TabItemStyle}"
  195. <TabItem.Background> 
  196. <ImageBrush ImageSource="styles/skin/ico/ico_softmgr.png"/> 
  197. </TabItem.Background> 
  198. <Grid Background="{DynamicResource MyBrush}"/> 
  199. </TabItem> 
  200. </TabControl> 
  201. <!--導(dǎo)航詳細--> 
  202. <!--下狀態(tài)欄--> 
  203. <Label Content="歡迎使用仿系統(tǒng)" Margin="" Grid.Row="" Foreground="#AEFF" FontWeight="Bold" BorderThickness="" BorderBrush="White" HorizontalAlignment="Left" Width="." TextOptions.TextFormattingMode="Display" /> 
  204. <Label Content="已連接網(wǎng)絡(luò)" Margin="" Grid.Row="" Foreground="#AEFF" FontWeight="Bold" BorderThickness="" BorderBrush="White" HorizontalAlignment="Right" Width="" TextOptions.TextFormattingMode="Display" /> 
  205. </Grid> 
  206. </Border> 
  207. </Window> 
  208.  
  209. using System; 
  210. using System.Collections.Generic; 
  211. using System.Linq; 
  212. using System.Text; 
  213. using System.Threading.Tasks; 
  214. using System.Windows; 
  215. using System.Windows.Controls; 
  216. using System.Windows.Data; 
  217. using System.Windows.Documents; 
  218. using System.Windows.Input; 
  219. using System.Windows.Media; 
  220. using System.Windows.Media.Imaging; 
  221. using System.Windows.Shapes; 
  222. namespace _UI 
  223. /// <summary> 
  224. /// LikeMain.xaml 的交互邏輯 
  225. /// </summary> 
  226. public partial class LikeMain : Window 
  227. public LikeMain() 
  228. InitializeComponent(); 
  229. private void closeButton_Click(object sender, RoutedEventArgs e) 
  230. this.Close(); 
  231. private void maxButton_Click(object sender, RoutedEventArgs e) 
  232. if (WindowState == WindowState.Normal) 
  233. WindowState = WindowState.Maximized; 
  234. else 
  235. WindowState = WindowState.Normal;  
  236. private void mniButton_Click(object sender, RoutedEventArgs e) 
  237. this.WindowState = WindowState.Minimized; 
  238. private void menuButton_Click(object sender, RoutedEventArgs e) 
  239. Menu.IsOpen = true
  240. private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
  241. //拖動 
  242. this.DragMove(); 
  243. private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) 
  244. int index = this.tab.SelectedIndex; 
  245. if (index == ) 
  246. //可以設(shè)置TransitionType WpfPage 來更改界面出入的動畫效果 
  247. //this.pTransitionControl_.TransitionType = WpfPageTransitions.PageTransitionType.SpinAndFade; 
  248. pages.index newPage = new pages.index(); 
  249. this.pTransitionControl_.ShowPage(newPage); 
  250. else if (index == ) 
  251. pages.scan newPage = new pages.scan(); 
  252. this.pTransitionControl_.ShowPage(newPage); 
  253. else if (index == ) 
  254. pages.scan newPage = new pages.scan(); 
  255. this.pTransitionControl_.ShowPage(newPage); 
  256. else 
  257. pages.index newPage = new pages.index(); 
  258. this.pTransitionControl_.ShowPage(newPage); 

當用戶單擊Tab頁簽時(切換事件),程序 用pages.index newPage = new pages.index();先實例化一個page子頁面(實際繼承UserControl),然后調(diào)用 this.pTransitionControl_1.ShowPage(newPage);將子頁面進行加載(本質(zhì)上是pTransitionControl_1.Content=newpage)。

4、運行代碼,界面如下:

WPF實現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享

下面是360安全衛(wèi)士界面截圖,可對比一下,還是比較相似的。

WPF實現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 五原县| 华蓥市| 吉首市| 和平县| 安多县| 石屏县| 孟连| 永州市| 如东县| 堆龙德庆县| 陆河县| 侯马市| 临邑县| 湘潭县| 永德县| 修水县| 余姚市| 林甸县| 聂荣县| 陇川县| 宣汉县| 咸宁市| 光泽县| 泾川县| 固镇县| 务川| 岳西县| 比如县| 宕昌县| 绥棱县| 潮安县| 安西县| 紫云| 二手房| 瓦房店市| 吉林市| 郸城县| 庄浪县| 阿图什市| 汉川市| 炉霍县|