随笔分类 -  WPF

摘要:经过实践检测,当时View上设置了Window.SizeToContent="WidthAndHeight"时候 <i:Interaction.Triggers> <i:EventTrigger EventName="Loaded"> <i:InvokeCommandAction Command=" 阅读全文
posted @ 2023-02-17 17:20 卖雨伞的小男孩 阅读(292) 评论(0) 推荐(0) 编辑
摘要:应用程序以 Main 方法为入口点,如果为 Main 方法指定一个 string[] 类型的参数,在程序运行时,这个参数会获取到传递给应用程序的命令行参数。 而 WPF 应用程序比较特殊,因为在VS中包含一些生成的的代码,因此,Main 方法所在的代码文件被隐藏了(文件名为App.g.cs,g 表示 阅读全文
posted @ 2022-09-26 10:11 卖雨伞的小男孩 阅读(343) 评论(0) 推荐(0) 编辑
摘要:<TextBox HorizontalAlignment="Left" Height="24" Margin="10,10,0,0" Text="{Binding SearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" TextW 阅读全文
posted @ 2021-12-21 16:09 卖雨伞的小男孩 阅读(207) 评论(0) 推荐(0) 编辑
摘要:1、在WPF中,获取当前窗体的句柄与WINFORM中不一样: WINFORM直接获取:this.Handle this是窗体的类名,handle就是句柄。 2、WPF中先引用命名空间:System.Windows.Interop; IntPtr hwnd = new WindowInteropHel 阅读全文
posted @ 2021-12-02 20:30 卖雨伞的小男孩 阅读(1024) 评论(0) 推荐(0) 编辑
摘要:一、WPF中的焦点 在 WPF 中,有两个与焦点有关的主要概念:键盘焦点和逻辑焦点。 键盘焦点指接收键盘输入的元素,而逻辑焦点指焦点范围中具有焦点的元素。 参与焦点管理的主要类包括 Keyboard 类、 FocusManager 类和基元素类,如 UIElement 和 ContentElemen 阅读全文
posted @ 2021-11-30 20:27 卖雨伞的小男孩 阅读(1834) 评论(0) 推荐(1) 编辑
摘要:一、WPF中的树 WPF 中,最完整的树结构是对象树。 如果在 XAML 中定义一个应用程序页,然后加载 XAML,将根据标记中元素之间的嵌套关系来创建树结构。 如果使用代码定义应用程序或应用程序的一部分,则将根据为属性(属性实现给定对象的内容模型)分配属性值的方式来创建树结构。 因为对象树更像是概 阅读全文
posted @ 2021-09-02 13:32 卖雨伞的小男孩 阅读(652) 评论(0) 推荐(0) 编辑
摘要:合理利用Freezable对象可以提升程序的性能,可冻结对象包括 画笔、笔、转换、几何图形和动画。 一、什么是可冻结的 Freezable是具有两种状态的特殊对象类型:解冻和冻结。 解冻后,的 Freezable 行为与任何其他对象的行为类似。 冻结后,将无法 Freezable 再修改。 Free 阅读全文
posted @ 2021-09-02 10:44 卖雨伞的小男孩 阅读(582) 评论(0) 推荐(0) 编辑
摘要:微软官方文档:https://docs.microsoft.com/zh-cn/previous-versions/dotnet/netframework-4.0/aa969767(v=vs.100) 阅读全文
posted @ 2021-09-02 10:22 卖雨伞的小男孩 阅读(85) 评论(0) 推荐(0) 编辑
摘要:微软官方文档: https://docs.microsoft.com/zh-cn/dotnet/desktop/wpf/advanced/graphics-rendering-tiers?view=netframeworkdesktop-4.8 阅读全文
posted @ 2021-09-02 10:18 卖雨伞的小男孩 阅读(67) 评论(0) 推荐(0) 编辑
摘要:本文目录 前言 TreeView滚动定位 虚拟化后的TreeView滚动定位 前言 虚拟化需要设置虚拟化属性 <TreeView x:Name="treeViewCommand" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingSta 阅读全文
posted @ 2021-09-02 10:03 卖雨伞的小男孩 阅读(405) 评论(0) 推荐(0) 编辑
摘要:https://docs.microsoft.com/zh-cn/dotnet/desktop/wpf/advanced/optimizing-performance-controls?view=netframeworkdesktop-4.8 显示大型数据集 WPF 控件(如 ListView 和) 阅读全文
posted @ 2021-09-02 10:01 卖雨伞的小男孩 阅读(996) 评论(0) 推荐(1) 编辑
摘要:WPF 虚拟化 VirtualizingWrapPanel 和 VirtualLizingTilePanel 一、 UI 上两个扩展 public class VirtualizingWrapPanel : VirtualizingPanel, IScrollInfo { #region Field 阅读全文
posted @ 2021-09-02 10:00 卖雨伞的小男孩 阅读(297) 评论(0) 推荐(0) 编辑
摘要:自定义一个VirtualizingUniformGridWrapPanel。 实现1. 新建类VirtualizingWrapPanel,继承VirtualizingPanel并实现IScrollInfopublic class VirtualizingWrapPanel : Virtualizin 阅读全文
posted @ 2021-09-02 09:54 卖雨伞的小男孩 阅读(392) 评论(0) 推荐(0) 编辑
摘要:许多时候,我们的界面上会呈现大量的数据,如包含数千条记录的表格或包含数百张照片的相册。由于呈现UI是一件开销比较大的动作,一次性呈现数百张照片就目前的电脑性能来说是需要占用大量内存和时间的。因此需要对其进行优化。以前采用的方案大多数是翻页,翻页在某种程度上造成用户浏览的中断,因此现在往往采用一种新的 阅读全文
posted @ 2021-09-02 09:50 卖雨伞的小男孩 阅读(308) 评论(0) 推荐(0) 编辑
摘要:WPF实现滚动条还是比较方便的,只要在控件外围加上ScrollViewer即可,但美中不足的是:滚动的时候没有动画效果。在滚动的时候添加过渡动画能给我们的软件增色不少,例如Office 2013的滚动的时候支持动画看起来就舒服多了。 之前倒是研究过如何实现这个平滑滚动,不过网上的方案大部分大多数如下 阅读全文
posted @ 2021-09-02 09:49 卖雨伞的小男孩 阅读(260) 评论(0) 推荐(0) 编辑
摘要:(转载) ListBox的滚动方式 分为像素滚动和列表项滚动 通过ListBox的附加属性ScrollViewer.CanContentScroll来设置。因此ListBox的默认模板中,含有ScrollViewer,ScrollViewer下存放列表内容 <ScrollViewer FocusVi 阅读全文
posted @ 2021-09-02 09:48 卖雨伞的小男孩 阅读(463) 评论(0) 推荐(0) 编辑
摘要:正确开启虚拟化的方式 列表如ListBox,ListView,TreeView,GridView等,开启虚拟化 ScrollViewer设置CanContentScroll=True 直接在模板中,设置CanContentScroll="True" 如模板中未设置CanContentScroll属性 阅读全文
posted @ 2021-09-02 09:47 卖雨伞的小男孩 阅读(474) 评论(0) 推荐(1) 编辑
摘要:private void Application_Startup(object sender, StartupEventArgs e) { mutex = new System.Threading.Mutex(true, "Yonyou_RpaStudio", out bool ret); if ( 阅读全文
posted @ 2021-09-01 13:41 卖雨伞的小男孩 阅读(177) 评论(0) 推荐(0) 编辑
摘要:TreeView本身不支持多选,可以用一个附加属性实现 一、附加属性定义 public class TreeViewExtensions : DependencyObject { /// <summary> /// Gets the value of the dependency property 阅读全文
posted @ 2021-08-10 20:49 卖雨伞的小男孩 阅读(706) 评论(2) 推荐(0) 编辑
摘要:private void NewWindowHandler(object sender, RoutedEventArgs e) { Thread newWindowThread = new Thread(new ThreadStart(ThreadStartingPoint)); newWindow 阅读全文
posted @ 2021-07-06 20:54 卖雨伞的小男孩 阅读(223) 评论(0) 推荐(0) 编辑