随笔分类 -  WPF 技巧

摘要:没用Popup用的面板控件,全部代码使用xaml的触发器。 代码: 阅读全文
posted @ 2019-10-28 21:22 ARM830 阅读(956) 评论(0) 推荐(0) 编辑
摘要:源自MSDN问题。 思路很简答: TabControl因为只显示TabItem的选择项的control。 所以单独的设置tabitem的control或者使用control的触发器都是不起作用的。 只有用controltemplate。 关键代码如下: 通过数据触发器来检测tabitem的visib 阅读全文
posted @ 2019-09-16 17:32 ARM830 阅读(2372) 评论(0) 推荐(0) 编辑
摘要:回答MSDN问题所写。 使用Adorner+附加属性 图片类(来自这位博主的博客) adorner代码 附加属性类 xaml代码 cs页面代码 阅读全文
posted @ 2019-09-11 00:39 ARM830 阅读(574) 评论(0) 推荐(0) 编辑
摘要:首先在xaml中创建集合是一个不可取的方法。 本方法仅作为xaml的学习。 本文略微无聊,主要是编写的东西都是老玩意。 首先是定义一个类,作为你要加载集合的模型。 结构如下 XAML中 截图如下 那么还有别的方法吗? 当然了,比如XAML中的X:Array关键字 比如 我觉得在xaml创建集合是一个 阅读全文
posted @ 2019-09-08 00:02 ARM830 阅读(1279) 评论(0) 推荐(0) 编辑
摘要:难倒是不难。 除去eventtrigger之外还有别的触发器可以实现。 这个主要是难在对xaml的数据理解上。 代码实现 截图 阅读全文
posted @ 2019-09-03 17:06 ARM830 阅读(1129) 评论(0) 推荐(0) 编辑
摘要:2019年10月3日改: 最主要的思路还是通过点击(排序)事件获取当前点击的列的名称或者index,然后赋值一个字段,通过字段来判断。 这个过程可以通过行为来完成,也可以通过附加属性来完成。 选择将数据模型继承于类我觉得大概是最慢的一个方法了。但是比较直观的。 完成这个操作,主要是XAML的代码。 阅读全文
posted @ 2019-08-22 17:24 ARM830 阅读(2127) 评论(0) 推荐(2) 编辑
摘要:使用函数为 SetWindowLong GetWindowLong 注册函数 使用函数 注意 启用窗口样式为 如果是多个样式启用或者禁止为 具体样式请参考具体Windows Style 注意:msdn中均为Long型,去掉L即可为int, 本函数均为32位,对应64位请参考网页的GetWindowL 阅读全文
posted @ 2019-08-21 09:31 ARM830 阅读(525) 评论(0) 推荐(0) 编辑
摘要:首先将CanUserDeleteRows设置为False, 其次是设置KeyUp事件 并自定义DataGrid.Columns修改如下 在CS页面修改: 定义一个List<DataRow> dataRow 集合用来存储DataTable的Row 修改CheckBox的Click事件 如下 修改Dat 阅读全文
posted @ 2019-08-15 15:54 ARM830 阅读(1331) 评论(0) 推荐(0) 编辑
摘要:基本概念 WPF中3D空间基本坐标系是右手坐标系。 WPF中3D空间的原点是(0,0,0) Position: 这个参数用来表示相机在空间内的坐标。参数是(X,Y,Z)。当修改相机的这个参数时,这个坐标是根据原点修改。这个概念是最为简单理解的(绿色方块为相机) LookDirection: 这个参数 阅读全文
posted @ 2019-08-12 22:29 ARM830 阅读(1005) 评论(0) 推荐(0) 编辑
摘要:Settings位于Properties中 代码上看Setting是一个单例模式 其中可以编写属性,方法 因为Setting位于窗口类之前实例化,所以通常用来窗口的某些设置,绑定。 有两种添加属性方式: 自动化添加 直接单击Settings,并设置名称,类型,值 界面如下: 范围有两个值: 应用程序 阅读全文
posted @ 2019-08-06 10:26 ARM830 阅读(3118) 评论(0) 推荐(0) 编辑
摘要:源于MSDN 一个问题。 问:如何做出类似word的文字选中后工具栏弹出和动画效果。 我用的是adorner,其实用popup也是可以的。 效果图: 中间黑色部分代表真正的工具栏。 xaml代码: adoner代码类 xaml.cs页面代码: 阅读全文
posted @ 2019-06-21 09:30 ARM830 阅读(708) 评论(0) 推荐(0) 编辑
摘要:首先说明 在SelectTemplate中并Item参数并不是真的一直为Null。而是先执行空参数,之后再会执行有参数的。 至于原因 我也不知道... 具体验证过程是 也就说 做好非空检测即可 阅读全文
posted @ 2019-06-08 12:49 ARM830 阅读(865) 评论(0) 推荐(0) 编辑
摘要:使用名称来查找DependencyProperty。 如果有这样的需求,则是需要通过DependencyPropertyDescriptor来查找。 通常是使用附加属性或者依赖属性的方法。 下面给出附加属性的例子: 这个是注册附加属性,利用string来输入要查找的属性 具体DependencyPr 阅读全文
posted @ 2019-06-03 16:40 ARM830 阅读(691) 评论(0) 推荐(0) 编辑
摘要:使用C#代码来获取XAML资源,除去正常的FindResource。而且是能查询到资源的对象。 说实话还是很麻烦的。 比如说我现在有一堆静态资源放在xaml的资源中,我想通过绑定的方式来获取。 好比是Path的Data数据 ,我放在Xaml资源中。 我将path作为listbox的ItemTempl 阅读全文
posted @ 2019-05-27 23:09 ARM830 阅读(3194) 评论(0) 推荐(0) 编辑
摘要:在编写XAML时 在Trigger中使用动画,在动画之后,动画对象就会被冻结,无法被其他动画或者属性改变。 处理办法有: 1 使用附加属性来添加动画 xaml 如果是想要搭配trigger来使用则是需要: 2 依赖属性来增加动画 依赖属性相对附加属性而言,在MVVM模式也是非常的引用 xaml( 涉 阅读全文
posted @ 2019-05-26 14:20 ARM830 阅读(618) 评论(0) 推荐(0) 编辑
摘要:前言 利用各种变换,将其水平改向至横向显示。 注意的是要固定好单元格的高宽,或者手动编写style 否者在滚动的时候,会有高宽比例不一样的时候 再其次,要注意datagrid的容器或者datagrid中的集合的数量,数量过多,请适当做出优化,容器则是放入scrollview中即可。 效果图 基本XA 阅读全文
posted @ 2019-05-05 19:29 ARM830 阅读(3094) 评论(0) 推荐(0) 编辑
摘要:利用DrawingBrush来画出背景网格图 阅读全文
posted @ 2019-04-09 09:54 ARM830 阅读(1762) 评论(0) 推荐(0) 编辑
摘要:InkCanvas有多种输入模式。 通过InkCanvasEditingMode来进行对其调整 分别是 None=0// 忽略鼠标和手写笔输入 Ink = 1// 允许用户绘制批注,默认模式。使用鼠标或者手写笔绘图时,会绘制笔画 GestureOnly = 2// 不远许用户绘制笔画批注,但会关注预 阅读全文
posted @ 2019-04-01 12:08 ARM830 阅读(924) 评论(0) 推荐(0) 编辑
摘要:TextCompositionManager中三个隧道事件,三个冒泡事件。 除了引发的过程不一样之外其作用是一样的。 事件分别为: InputStart InputUpdate TextInput 其中InputStart和TextInput是可以直接引发。 对InputUpdate则是需要特殊的按 阅读全文
posted @ 2019-03-30 14:02 ARM830 阅读(392) 评论(0) 推荐(0) 编辑
摘要:解决此问题很简单 将Storyboard单独提取出来及可 给定Key名称,然后在触发器中的BeginStoryboard的storyboard绑定即可 阅读全文
posted @ 2019-03-21 10:01 ARM830 阅读(573) 评论(0) 推荐(0) 编辑