随笔分类 - WPF相关
专门讲述wpf技术的
摘要:第一种方式:在 TextBlock 中使用附加属性 实现 TextBlockUtils 类,定义 AutoTooltip 附加属性: public class TextBlockUtils { /// <summary> /// Gets the value of the AutoTooltipPr
阅读全文
摘要:效果如下: 上图由两个圆弧组成,代码如下: 关键是: StrokeDashArray = “2 2” StrokeDashArray 就是用来设置虚线显示的,第一个 2 表示虚线中每段实体的长度,第二个 2 表示虚线中每段空白的长度 相关阅读: WPF使用Path来画圆
阅读全文
摘要:控件获取焦点除了用鼠标外,可以通过键盘来获取,比如Tab键或者方向键等,需要设置控件获取键盘焦点时的样式,可以通过设置FrameworkElemnt.FocusVisualStyle属性, 因为几乎所有常用的控件都继承了FrameworkElement,所以绝大部分控件都拥有该属性 // Summa
阅读全文
摘要:如下,在UserControl中通过Tag传递不同的值,然后在Style中使用DataTrigger进行判断, 在样式文件中: 因为需要判断的Tag就是当前UserControl的属性,所以相对路径就直接使用Self即可, 但需要注意:DataTrigger的Binding中不能使用{Templat
阅读全文
摘要:TextBox 默认是有边框的,显示效果如下:有一个淡蓝色的边框围绕着 如果需要隐藏这个边框,则只需要在代码中加上以下代码即可: BorderBrush="{x:Null}" BorderThickness="0" <TextBox Text="Hello" Width="480" TextWrap
阅读全文
摘要:Application类的SessionEnding事件,就是电脑关机或重启时响应的(会话结束事件), 所以只需要在App.xaml中添加SessionEnding <Application x:Class="DriverEasyWPF.App" xmlns="http://schemas.micr
阅读全文
摘要:Grid中RowDefinition的Height和ColumnDefinition的设置都有三种: 1. 具体数值,固定不变; 2. * 星号,如: 2*,5*,8*; 分母为(2+5+8=15),分子则是(2/15、5/15、8/15),按这样的比例来划分; 3. Auto,根据内容自适应; 如
阅读全文
摘要:想让 TextBlock即换行又能自动根据内容进行缩放,说到自动缩放,当然是ViewBox控件了,而TextBlock有TextWrapping属性控制换行, 所以在ViewBox中套用一个TextBlock,然后设置换行,问题就能解决了,代码如下: 结果呢?如下图: 这是什么情况,TextBloc
阅读全文
摘要:路由事件(RoutedEvent)是WPF中新增的事件,使用起来与传统的事件差别不大, 但传播方式是完全不同的。 路由事件的传播方式 通过RoutingStrategy来定义传播的方式 WPF中的路由事件用的最多的就是Tunnel和Bubble这两种传播方式,所以一般路由事件都是成对出现, 如:Pr
阅读全文
摘要:如同一个Grid中的一个按钮根据另一个按钮的显示与否作出不同的响应: 绑定的时候通过ElementName来指定控件 <Grid Margin="50,130"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition Width
阅读全文
摘要:普通的Trigger监听鼠标移入的代码如下: <Trigger Property="IsMouseOver" Value="true"> <Setter .../> </Trigger> 而MultiTigger想实现,当属性等于某个值,同时鼠标移入时的需求: 理论上,代码应该如下: 但实际运行起来
阅读全文
摘要:1.动画通过EventTrigger监听按钮的FrameworkElement.Loaded事件,但控件载入时就进行动画, 持续动画通过<BeginStoryboard Name="yourStoryName">下的<Storyboard>或者子动画的RepeatBehavior=Forever来实
阅读全文
摘要:1.当鼠标移入后执行某个动画: <Style TargetType="{x:Type StackPanel}"> <Setter Property="RenderTransform"> <Setter.Value> <TranslateTransform X="{Binding ElementNam
阅读全文
摘要:将TextBox的边框设为圆角的,因为TextBox默认的样式中边框就是由Border类型来实现的, 所以只需要真的当前的TextBox的Border修改属性即可,为了不影响界面中别的Border的样式, 所以将修改的样式写在了TextBox的Resources中 <TextBox> <TextBo
阅读全文
摘要:官方链接:https://msdn.microsoft.com/en-us/library/system.windows.window.statechanged(v=vs.110).aspx 1. Activated获得焦点事件 和 Deactivated失去焦点的事件: Activated: 获得
阅读全文
摘要:首先理清几个概念,Template、ControlTemplate、ContentTemplate、DataTemplate、ContentControl 这几个东西名字都差不多,意思感觉也接近,初次接触真的难以理解,那么现在开始区分了: 1.子类: ContentControl是Control的子
阅读全文
摘要:这是一个鼠标移入后,控件往左移动的动画: 1 <Style TargetType="{x:Type StackPanel}"> 2 <Setter Property="RenderTransform"> 3 <Setter.Value> 4 <TranslateTransform X="{Bindi
阅读全文
摘要:代码如下: <!--1. 首先引用System的命名空间--> <Window x:Class="DriverEasyWPF.Views.DialogWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x
阅读全文
摘要:1. 如上图,所示,此时当鼠标移入蓝色框内除文字部分,整个TabItem是没反应的 经过查看代码可以看到: 将图标中的VerticalAlignment="Center"和HorizontalAlignment="Center"删掉后,就能达到如下效果: TabItem的可选区域明显恢复到正常情况。
阅读全文
摘要:此时运行的效果如下: 此时效果如下:
阅读全文