为了对自己所学知识能够熟练进行应用,昨天自己做了一个迅雷界面。

文章的下载链接:https://download.csdn.net/download/weixin_44469024/11558390
界面最终效果效果如下:

首先在VS里面导入DMSkin资源集,在主界面中用DMSkin1替换Window并且让DMSkin1继承自DMSkinSimpleWindow。再次完成了无边框的界面创建。
左下角图片为动态图片,如何引用请查看我的文章。
搭建界面主要分为三步:

  1. 先将主界面分为两列,在第一列加载按钮,在第二列加载界面。
  2. 因为按钮“正在下载” “已完成” “回收站”按钮样子相同,因此可以创建资源集合让这三个按钮引用同一个资源。
  3. 创建Page界面以便可以响应按钮的点击事件,进行界面之间的切换。

分布解释主窗口的界面设计:

  1. 先将整个界面分为两列
     <Grid.ColumnDefinitions><ColumnDefinition Width="250"/><ColumnDefinition/></Grid.ColumnDefinitions>

一列的设计
2. 设置第一列背景颜色渐变

         <Grid.Background><LinearGradientBrush  StartPoint="0,0" EndPoint="1,0"><GradientStop Color="#000080" Offset="0"/><GradientStop Color="#6495ED" Offset="0.5"/><GradientStop Color="#00BFFF" Offset="1"/></LinearGradientBrush></Grid.Background>

3.对界面标题进行设置:

          <StackPanel Orientation="Horizontal"><TextBlock FontFamily="{StaticResource IconFont}" Text="" FontSize="30" Margin="3" Foreground="#FFDEAD"></TextBlock><TextBlock Text="迅雷U享版" FontSize="25" Foreground="#FFDEAD" VerticalAlignment="Center"></TextBlock></StackPanel>

4.头像和人物信息的设置

         <StackPanel Grid.Row="1"><Ellipse Width="80" Height="80" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="83,9,87,21"><Ellipse.Fill><ImageBrush ImageSource="Images/7.jpg"></ImageBrush></Ellipse.Fill></Ellipse><TextBlock Style="{StaticResource TextBlockStyle1}" Text="阿迅"></TextBlock><StackPanel Orientation="Horizontal"><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="50"/><ColumnDefinition Width="45"/><ColumnDefinition Width="10"/><ColumnDefinition Width="auto"/><ColumnDefinition /></Grid.ColumnDefinitions><TextBlock Grid.Column="1" Text="VIP 6" Style="{StaticResource TextBlockStyle1}" Background="Red"></TextBlock><TextBlock Grid.Column="3" Text="年" Style="{StaticResource TextBlockStyle1}" Background="Red"/></Grid><TextBlock Style="{StaticResource TextBlockStyle1}" Text="活动中心"/></StackPanel></StackPanel>
  1. 将图标与按钮封装在一个按钮下,以便能在资源字典中对按钮模板事件就行定义,图标按钮做出相同反应。
              <Button Style="{StaticResource ButtonStyle1}" Grid.Row="0" Name="btn_load" Click="Btn_load_Click"><StackPanel Orientation="Horizontal"><TextBlock FontSize="25" Canvas.Left="55" Canvas.Top="145" FontFamily="{StaticResource IconFont}" Text="" VerticalAlignment="Center"/><Button Canvas.Left="70" Canvas.Top="20" Style="{StaticResource ButtonStyle1}" Content="正在下载"/></StackPanel></Button><Button Style="{StaticResource ButtonStyle1}" Grid.Row="1" Name="btn_finished" Click="Btn_finished_Click"><StackPanel Orientation="Horizontal"><TextBlock FontSize="25" Canvas.Left="55" Canvas.Top="145" FontFamily="{StaticResource IconFont}" Text="" VerticalAlignment="Center"/><Button Canvas.Left="70" Canvas.Top="20" Style="{StaticResource ButtonStyle1}" Content="已完成"/></StackPanel></Button><Button Style="{StaticResource ButtonStyle1}" Name="btn_clear" Click="Btn_clear_Click"><StackPanel Orientation="Horizontal"><TextBlock FontSize="25" Canvas.Left="55" Canvas.Top="145" FontFamily="{StaticResource IconFont}" Text="" VerticalAlignment="Center"/><Button Canvas.Left="70" Canvas.Top="130" Style="{StaticResource ButtonStyle1}" Content="回收站"/></StackPanel>
  1. 加载"下载"的动态图片
 <Image gif:AnimationBehavior.SourceUri="Images/download.gif" />

二列的设计

  1. 将第二列分为两行,第一列第一行中加载图标按钮,第二列加载界面.

三创建资源字典

在资源字典中设计按钮界面和按钮的点击事件

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><FontFamily x:Key="IconFont">/Resocures/#iconfont</FontFamily><!--字体图标设置--><Style x:Key="TbkIconStyle" TargetType="{x:Type TextBlock}"><Setter Property="FontSize" Value="20"/></Style><Style x:Key="ButtonStyle1" TargetType="{x:Type Button}"><Setter Property="Foreground" Value="#98F5FF"/><Setter Property="BorderThickness" Value="0"/><Setter Property="Padding" Value="40,15,40,15"/><Setter Property="VerticalContentAlignment" Value="Center"/><Setter Property="HorizontalContentAlignment" Value="Center"/><Setter Property="Background" Value="#000080"/><Setter Property="FontSize" Value="25"/><Setter Property="Margin" Value="10"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="Button"><Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" SnapsToDevicePixels="True" Background="{TemplateBinding Background}"><ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"RecognizesAccessKey="True"></ContentPresenter></Border><ControlTemplate.Triggers><Trigger Property="IsMouseOver" Value="true"><Setter Property="Foreground" Value="#FFEBCD"/></Trigger><Trigger Property="IsPressed" Value="True"><Setter Property="Foreground" Value="#FFEBCD"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style><Style x:Key="TextBlockStyle1" TargetType="{x:Type TextBlock}"><Setter Property="HorizontalAlignment" Value="Center"/><Setter Property="VerticalAlignment" Value="Center"/><Setter Property="Foreground" Value="#FFEBCD"/><Setter Property="Cursor" Value="Hand"/><Setter Property="FontSize" Value="15"/><Setter Property="Margin" Value="5"/></Style>
</ResourceDictionary>

四 自己可以根据自己的喜好对正在下载,已完成,回收站进行设计。

将界面添加到主窗体中

  1. 分别对正在下载,已完成,回收站添加点击事件,在点击事件中对窗口进行实例化。就可以实现界面之间的切换
        private void Btn_load_Click(object sender, RoutedEventArgs e){Load load = new Load();Change_Page.Content = new Frame{Content = load};}

自己动手搭建的一个迅雷界面相关推荐

  1. vuejs 和 element 搭建的一个后台管理界面【收藏】

    介绍: 这是一个用vuejs2.0和element搭建的后台管理界面. 相关技术: vuejs2.0:渐进式JavaScript框架,易用.灵活.高效,似乎任何规模的应用都适用. element:基于 ...

  2. vuejs 和 element 搭建的一个后台管理界面

    介绍: 这是一个用vuejs2.0和element搭建的后台管理界面. 相关技术: vuejs2.0:渐进式JavaScript框架,易用.灵活.高效,似乎任何规模的应用都适用. element:基于 ...

  3. 自己动手搭建一个简单的静态资源服务器

    文章目录 自己动手搭建一个简单的静态资源服务器 介绍 一.设计到的模块 备注: 二.代码结构 三.具体代码 自己动手搭建一个简单的静态资源服务器 介绍 ​ 通过此文章的学习,可以自己使用NodeJs搭 ...

  4. 运用PyTorch动手搭建一个共享单车预测器

    本文摘自 <深度学习原理与PyTorch实战> 我们将从预测某地的共享单车数量这个实际问题出发,带领读者走进神经网络的殿堂,运用PyTorch动手搭建一个共享单车预测器,在实战过程中掌握神 ...

  5. 动手搭建自己的本地测试服务器

    动手搭建自测服务器,加快本地开发进度,最近自己在开发过程中有这么一个需求,在开发本地应用模块过程中,需要请求服务器测试服务器,但是服务器老出问题,于是就有自己本地搭建一个服务器的一个想法,然后配置接口 ...

  6. 自己动手搭建搜索工具

    自己动手搭建搜索工具 作者 白宁超 2016年4月12日16:31:48 摘要:搜索已经作为生活中不可缺少的一部分,诸如:百度.google.还是在微信上寻找好友或者通过一段文本查找关键字.另外亚马逊 ...

  7. 自己动手搭建网站:域名和云服务器选购

    系列文章:自己动手搭建网站系列总目录 目录 1.引言 2.域名选购 3.云服务器选购 3.1选购云服务器 3.2配置安全组规则 4.参考资料 1.引言 注意:现在的网站要进行"双备案&quo ...

  8. 动手搭建安卓开发环境

    2014已经快到尾声,2015即将来临.要问到如今最流行的手机操作系统,那就非安卓莫属了.手机作为用户粘合度最大的一种电子产品,早已成为各大厂商的兵家必争之地,所以安卓的炙手可热也是必然的.作为用户最 ...

  9. 因买不到RTX 3090,小哥自己搭建了一个专业级机器学习工作站

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自|知乎   作者|Emil Wallner 来源 AI科技评论 编辑丨极市平台 极 ...

最新文章

  1. tomcat7在eclipse中,调试时断点频繁停在threadpoolexecutor
  2. Maven 修改默认端口启动web项目
  3. 华为IoT平台NB编解码插件开发详细教程【上篇】
  4. Unity3D ARPG网络游戏编程实践
  5. 详细解读windows无法ping通虚拟机的原因
  6. 北京市平谷区谷歌卫星地图下载
  7. 微信推送封面尺寸_微信公众号封面图、正文配图尺寸如何?如何选择、制作?...
  8. 【Tensorflow2.0】8、tensorflow2.0_hdf5_savedmodel_pb模型转换[1]
  9. 计算机专业答辩开场白,毕业论文答辩开场白
  10. 宁畅g40系列服务器发布,基于第三代至强可扩展处理器,宁畅G40系列服务器正式发布...
  11. 沃通CA证书支持多所高校招投标文件电子签名
  12. Matlab将图像序列合成为视频
  13. js收起手机软件键盘
  14. 最新!中国内地大学ESI排名出炉:362所高校上榜!
  15. Leetcode 930. 和相同的二元子数组 题解
  16. 指尖江湖李忘生鸿蒙初开,剑网3指尖江湖李忘生技能秘籍哪个好 李忘生技能秘籍搭配教程一览...
  17. pytorch 寻找二元函数的最小值
  18. AI“看片儿”比人快,鉴黄师却说不靠谱?
  19. 本机上的Web网站如何让其他人访问?
  20. 【UV打印机】PrintExp打印软件教程(二)-主界面介绍

热门文章

  1. fastadmin 单选框禁止选择
  2. pandas从身份证中取得生日,转为日期
  3. 网络安全(知识点总结分类)
  4. 小硕3年是怎样发6篇SCI的
  5. 对C盘可用空间有些强迫的咋办???(笔者自己电脑操作,蛮看)
  6. 2018 考研 408 经验贴——数学一
  7. 嵌入式硬盘录像机和PC电脑+视频卡录像比较
  8. 采访手艺人的花絮视频
  9. 小程序之上传多张图片
  10. 背景建模技术(四):视频分析(VideoAnalysis)模块