随笔分类 - WPF 技巧
摘要:先上截图 修正2 源代码 修正: 应该将SetTime方法修改为,行号为207行开始修改 var nk = Day_of_week(year, month, 1); if (nk == 0) nk = 7; for (var i = 0; i < nk-1; i++) { Time.Add(new
阅读全文
摘要:这个例子来自书上。 记录过程。 主要是数学上极坐标,WPF中的测量过程 简单来说在一个具有固定轴的坐标系内,一个由原点射出的向量并与固定轴有一定角度且在向量上确定长度的这么个东西。 可以参考: 知乎https://www.zhihu.com/question/318613418/answer/640
阅读全文
摘要:本文中的例子本质上就是利用附加属性传递附加对象,并在观察者模式中使用反射技术实现指定名称的事件参数传递。 本文中框架任然有很多问题,目前来说是勉强能用,有可以修改的地方尽管说! 我们知道附加属性可以随意在控件上使用。 创建附加属性时写DependencyProperty的这一部分 ,并且需要使用Se
阅读全文
摘要:TreeView是默认对上下左右响应,或者是Ctrl+Tab。 如果单独用tab则是不起作用的。 如果使用一般treeview可以利用以下方式来让tab进行导航。 设置Treeview和TreeviewItem的KeyboardNavigation treeview <Setter Property
阅读全文
摘要:透视相机的updirection,是具有三个参数的的属性(X,Y,Z),不过Z属性是没有作用的。 那么X,Y是什么呢? 是用来确定角度的。 注意H边, 我们知道单位圆上的一点都是可以用XY表示,用Y/X,即tan函数就可以求出圆心角的弧度,然后转角度就可以了。 比如说UpDirection我们设置为
阅读全文
摘要:先上代码: <Window.Style> <Style TargetType="{x:Type Window}"> <Setter Property="WindowState" Value="{Binding Tag, RelativeSource={RelativeSource Mode=Self
阅读全文
摘要:只要修改DataGridCell的Style就可以了。 包括具体子项被选中时 <Style TargetType="{x:Type DataGridCell}"> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Sette
阅读全文
摘要:使用WPF的DataGrid的时候 会自定义列或者是绑定某些属性。 但是通常有些问题,获取不到或者没有数据。 因为Column是属性所以并不在逻辑树和视觉树中。 此时可以通过代理类来做中间部分。 将某些属性放置到或者绑定到这个类,DataGird的列在通过绑定就可以获取数据。 例如自定义Header
阅读全文
摘要:更正: 如果保留datagrid最后一行,则需要在 GenerateElement方法中判断dataitem是否为{newitemplaceholder}的字符串 重新更正为: protected override FrameworkElement GenerateElement(DataGridC
阅读全文
摘要:最主要的是在ItemContainerStyle中设置EventTrigger。 使用其他具有items的控件时也是可以通用类似的代码 截图 xaml代码
阅读全文
摘要:没什么特殊的。 要点一:使用json传递参数。 比如说我传递的数字数组到js中,我首先将参数转换为json。在传递js中,在函数中确保转成数字,最后添加到需要的地方即可 js代码:
阅读全文
摘要:初版,写的很杂很乱。 截图: 源代码
阅读全文
摘要:具体的代码还是线性代数。 主要是旋转和平移。 这个例子的中模型是在世界原点建立。所以旋转会以自身轴心旋转。 如果不在世界原点建立模型,还想以自身为旋转轴旋转。 则是需要以下步骤: 模型的中心点为V1(100,100,0)假设中心为轴(平行于Y轴),旋转A度,也就是说自身中心点的Y轴旋转。 步骤: (
阅读全文
摘要:WPF中Webbrowser控件使用HwndHost所以webbrowser会在所有控件的前方。所以webbrowser会覆盖所有同级的控件。 现在通过使用Win32API 可以避免这个情况。 最主要的就是这几个Win32API: 适当说一下: setwindowrgn就是设置有效绘图区域。 cre
阅读全文
摘要:有点类似与Winform的MDI窗口。 使用函数为SetParent和MoveWindow(经常配合)。 给个小例子,例如嵌套TIM的聊天窗口 其中window1 就是新建的窗口 里面什么都没有写,默认 截图 SetParent的问题: 1 使用API后,子窗口在父窗口中不显示但是可以显示鼠标的拖拉
阅读全文
摘要:原理是: 因为是双击事件,也就是同时引发了选择事件,TreeViewItem的IsSelected为True.通过触发器设置某个属性为特殊值,然后在CS页面的双击事件方法内判断是否此值即可。 xaml代码: cs代码 原截图 现在的效果 *******************************
阅读全文
摘要:直接在xaml定义时xml时应该注意的! xml数据 如果直接在Xaml页面中定义则是: 使用XmlDataProvider,并设置key,以及Xpath的源,xpath则是xml在被绑定时起始数据的起点,但不包括自身(不设置也可以,但是需要在设置绑定时设置) 也就是xpath设定为StringLi
阅读全文
摘要:例如设置Visibility属性时: 第一种方式: 也就是使用static关键字来赋值。 第二种方式 手动设置要设置的值。
阅读全文
摘要:使用情节触发器时,如果有触发源/触发源控件时可以将情节触发器放置最顶级的面板控件的触发器中。 通过blend这个神器真的是可以学到不少东西。 代码:
阅读全文
摘要:非动画,只是简单的触发器。 主要是针对旋转的写法。 代码
阅读全文