WPF 自带的键盘焦点样式是与传统控件样式搭配的,但 WPF 凭着其强大的自定义样式的能力,做出与传统控件样式完全不同风格的 UI 简直易如反掌.这时,其自带的键盘焦点样式(FocusVisualStyle)就非常不搭了,改改会舒服得多.比如,改成 UWP 的样式. 本文将展示 WPF 自定义键盘焦点样式自定义的坑! ▲ WPF 自带的键盘焦点样式 ▲ UWP 暗主题键盘焦点样式 其实微软官方文档 Styling for Focus in Controls, and FocusVisualSty…
资源文件代码: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <!-- 最大化按钮形状 --> <PathGeometry x:Key="pathMaximize"> <…
一.前言 滚动条一般用于加载进度,我们在看视频的时候或者在浏览网页的时候经常能看到加载进度的页面.在程序开发中,默认的进度加载样式可能跟程序风格不太一样,或者加载进度的时候需要更改一下加载的样式.这个时候就需要通过修改ProgressBar的样式来实现. 二.ProgressBar的基本样式 ProgressBar的基本样式很简单: <Style TargetType="{x:Type ProgressBar}"> <Setter Property="Foc…
控件获取焦点除了用鼠标外,可以通过键盘来获取,比如Tab键或者方向键等,需要设置控件获取键盘焦点时的样式,可以通过设置FrameworkElemnt.FocusVisualStyle属性, 因为几乎所有常用的控件都继承了FrameworkElement,所以绝大部分控件都拥有该属性 // Summary: // Gets or sets a property that enables customization of appearance, effects, // or other style…
自定义CheckBox样式,mark一下,方便以后参考复用 设计介绍: 1.一般CheckBox模板太难看了,肯定要重写其中的模板 2.模板状态为未选中状态和选中状态,设置为默认未选中就好了. 默认状态,设置边框.透明度等 选中的话,我们可以设置√和背景. <Style x:Key="CheckBoxStyle" TargetType="{x:Type CheckBox}"> <Setter Property="SnapsToDevice…
原文:WPF界面设计技巧(4)-自定义列表项样式 有前面修改按钮样式的基础,我们可以尝试来定制一个即好看又好用的 ListBox ,今天先来讲“好看”部分. 打开 Microsoft Visual Studio 2008 ,建立一个WPF应用程序,调整窗体大小,在窗体内创建一个 ListBox 和一个 Button ,按下图所示布局. 在  Window1.xaml 中为窗体 Loaded 事件及按钮 Click 事件添加事件处理: Code <Window x:Class="自定义列表项…
1. 引言 在上一篇中,介绍了如何建立自定义窗体.接下来,我们需要考虑将该自定义窗体基类放到类库中去,只有放到类库中,我们才能在其他地方去方便的引用该基类. 2. 创建类库 接上一篇的项目,先添加一个类库项目stonemqy.CustomWindow.Helpers.理所当然的,我们接下来需要把VisualStates.TransitioningContentControl.CustomWindow.Themes/Generic.xaml等文件放入类库中.此时,要注意添加如下引用: Presen…
1. 引言 WPF是制作界面的一大利器.最近在做一个项目,用的就是WPF.既然使用了WPF了,那么理所当然的,需要自定义窗体样式.所使用的代码是在网上查到的,遗憾的是,整理完毕后,再找那篇帖子却怎么也找不到了,仅仅在下载记录里面找到了作者的git地址,DinoChan.原帖作者看到后可以联系我,以便我加上原文链接. 首先上原始源码. 2. 创建项目 创建空白项目stonemqy.CustomWindow,添加WPF项目stonemqy.CustomWindow.Main.在stonemqy.Cu…
WPF自定义TabControl,TabControl美化 XAML代码: <TabControl x:Class="SunCreate.Common.Controls.TabControlEx" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xm…
原文:WPF 自定义ComboBox样式,自定义多选控件 一.ComboBox基本样式 ComboBox有两种状态,可编辑和不可编辑状态.通过设置IsEditable属性可以切换控件状态. 先看基本样式效果: 基本样式代码如下: <!--ComboBox--> <!--ComBoBox项选中背景色--> <SolidColorBrush x:Key="ComboBoxSelectdBackground" Color="#ff8c69"/…
原文:WPF 自定义MenuItem样式 一.前言 默认的MenuItem样式比较普通,这次自定义MenuItem的样式也只是对MenuItem的颜色风格进行变化.需要其他功能的变化,大家可以根据样式代码进行扩展. MenuItem的样式代码: <!--MenuItem--> <Style TargetType="MenuItem"> <Setter Property="Template"> <Setter.Value>…
WPF自定义分页控件 做了许久伸手党,终于有机会贡献一波,搜索一下WPF分页控件,还是多,但是不太通用,主要就是样式问题,这个WPF很好解决,还有一个就是分页控件嘛,只关心几个数字的变动就行了,把页码改变事件暴露出来,数据的加载在这里就做就行,所以这个分页控件很简单... 好像也没啥讲的,直接上代码了 分页控件基本样式 <Style TargetType="{x:Type local:Pager}"> <Setter Property="Template&q…
原文:[C#]wpf自定义calendar日期选择控件的样式 首先上图看下样式 原理 总览 ItemsControl内容的生成 实现 界面的实现 后台ViewModel的实现 首先上图,看下样式 原理 1. 总览: Calendar本质上是一个6x7的列表,这个列表可以用ItemsControl来实现.其填充的每一个item都是一个自定义样式的Button,Button外面是一个圆形的border.根据Button按钮的IsEnabled状态,设置foreground以达到灰色不点击的效果. 2…
原文:如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 title: "如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来" publishDate: 2019-06-28 09:49:29 +0800 date: 2019-06-29 09:07:54 +0800 categories: wpf dotnet csharp position: knowledge 我们有很多的调试工具可以帮助我们查看 WPF 窗口中当前获得键盘焦点的元素.本文介绍监控当前键盘焦点元素的方…
WPF自定义样式篇-DataGrid 先上效果图: 样式:  <!--DataGrid样式-->    <Style TargetType="DataGrid">        <Setter Property="RowHeaderWidth" Value="0"></Setter>        <Setter Property="AutoGenerateColumns"…
上一篇文章中谈到了BulletDecorator控件,就是为自定义CheckBox控件的模板做准备,因为CheckBox需要比较严格的布局,正好,BulletDecorator控件就合适了,该控件的布局是有项目列表,排列起来好办很多了.   第一步,先建立一项资源,就是控件的聚焦样式,即当你在窗体中不断按Tab键使控件获取焦点时的样式,后面要用到. <!--当控件获得键盘焦点时的样式--> <Style x:Key="FocusStyle"> <Sette…
wpf 自定义圆形按钮 效果图 默认样式 获取焦点样式 点击样式 下面是实现代码: 一个是自定义控件类,一个是控件类皮肤 using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.…
原文:WPF 悬浮键盘 public class TouchScreenKeyboard : Window { #region Property & Variable & Constructor private static double _WidthTouchKeyboard = 830; public static double WidthTouchKeyboard { get { return _WidthTouchKeyboard; } set { _WidthTouchKeybo…
WPF 自定义柱状图 当前的Telerik控件.DevExpress控件在图表控件方面做得不错,但是有时项目中需要特定的样式,不是只通过修改图表的模板和样式就能实现的. 或者说,通过修改当前的第三方控件以达到项目中UI的界面效果,花费的时间远比重新自定义一个控件要长得多! 所以直接自定义柱状图吧~下面是柱状图的效果: Git代码下载:https://github.com/Kybs0/BarChartControl 1.新建一个UserControl,在界面上添加一些简单的布局 <UserCont…
 如题,要实现一个如下的列表,该如何实现? 在设计过程中,会遇到如下问题: 1.ListBox中ListBoxItem的模板设计 2.ListBox中ListBoxItem的模板容器设计 3.ListBox本身的模板设计 4.ListBox本身的焦点样式 下面我们依次来解决这些问题: 1.子模板 <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal" Horizo…
Styling the Action Bar If you want to implement a visual design that represents your app's brand, the action bar allows you to customize each detail of its appearance, including the action bar color, text colors, button styles, and more. To do so, yo…
WPF 自定义 MessageBox (相对完善版)     基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当你不得不弹出一个消息框通知用户消息时(虽然很不建议在程序中频繁的弹框,恩,我说的是不得不...).那个默认的System.Windows.MessageBox 就显得太丑陋,太不搭调了.因此想到怎么搞一个新的MessageBox替换掉默认的.有童鞋说WPF扩展包中提供了新的MessageBox,那也…
系统默认的滚动条样式,真的已经看的够恶心了.试想一下,如果在一个很有特色和创意的网页中,出现了一根系统中默认的滚动条样式,会有多么的别扭. 为了自己定义网页中的滚动条的方法,我真的已经找了很久了,就目前寻找的成果来说,找到了两个比较不错的 jQuery 插件:jScrollPane和 mCustomScrollbar.关于前者,大家见过的可能比较多,但是这个插件太过于古老而且功能不强大.效果在几年前非常不错,但是放在现在就不好说了.所以我选择了后者:mCustomScrollbar.下图是两者官…
基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当你不得不弹出一个消息框通知用户消息时(虽然很不建议在程序中频繁的弹框,恩,我说的是不得不...).那个默认的System.Windows.MessageBox 就显得太丑陋,太不搭调了.因此想到怎么搞一个新的MessageBox替换掉默认的.有童鞋说WPF扩展包中提供了新的MessageBox,那也只是把MessageBox的样式从XP提高到了Win7样式而已…
很多APP都会涉及到搜索框,苹果也为我们提供了默认的搜索框UISearchBar.但实际项目中我们通常需要更改系统默认搜索框的样式.为了实现这一目标,我们需要先搞懂 UISearchBar 的属性及方法.在系统的掌握了这些基础的前提下才能更好的去应用它,包括修改样式.或者是模仿系统搜索框的样式自定义一个自己的搜索框等. 本文主要介绍内容分为以下三个部分: 1. UISearchBar 的属性 2. UISearchBar 的方法 3. 自定义 UISearchBar 的样式 1. UISearc…
键盘焦点和逻辑焦点(Logic Focus与Keyboard Focus ) 1.定义Keyboard Focus可以理解为物理焦点.就是整个桌面上可以响应键盘输入的地方,整个桌面在某个时刻只可能有一个地方能接受键盘的输入,因此整个桌面在某个时刻只可能有一个Keyboard Focus. Logic Focus从字面上理解是逻辑焦点.一般带“逻辑”字眼的东西都有可能是“虚”的,在这里也不例外.Logic Focus并不是真正的焦点.它只是在桌面上某个范围内,在该范围未获得物理焦点之前,该范围默认…
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/strengthen/p/10355565.html ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章…
原文:WPF自定义TextBox及ScrollViewer 寒假过完,在家真心什么都做不了,可能年龄大了,再想以前那样能专心坐下来已经不行了.回来第一件事就是改了项目的一个bug,最近又新增了一个新的功能,为程序添加了一个消息栏.消息栏有许多形式,要求是一个不需要历史记录,可以用鼠标选中消息内容的消息栏.我首先想到的就是TextBox,我个人比较喜欢美观的,有点强迫症,所以必须把TextBox中的ScrollViewer给改写了,好吧,开始. 本博文分为三个部分,第一部分将描述如何改写TextB…
原文:WPF 自定义图片剪切器 - 头像剪切(扩展与完善.实时截图) 一.说明:上一次写的"WPF 自定义图片剪切器 - 头像剪切.你懂得"存在明显的缺陷,由于篇幅较长.重新写了一篇新的. 问题的原因:由于是对图片文件进行剪切处理,当图片加载后变形的话,处理起来明显的有错误! 解决办法:重新计算比例.但是有个问题就是在原来的基础上重新计算,计算量会相当复杂.因为整个截图区域就那么大,是固          定的,而图片可大可小,你要是想正确获取加载后的图片与截图区域的比例将会变得相当麻…
原文:WPF自定义窗口最大化显示任务栏 当我们要自定义WPF窗口样式时,通常是采用设计窗口的属性 WindowStyle="None" ,然后为窗口自定义放大,缩小,关闭按钮的样式. 然而这样的话,当通过代码设置窗口(代码如下)放大时,窗口会把任务栏给遮档住. private void Max_Click(object sender, RoutedEventArgs e) { if (this.WindowState != WindowState.Maximized) { this.W…