WPF
硬核小青年
建筑信息化、BIM平台二次开发、IFC标准研究
展开
-
WPF 标签化文本框控件
原项目笔者借鉴了CSDN中文章标签的样式,对原项目进行调整,修改后的效果如下:CSDN文章标签修改之后参考文献:标签化文本框控件项目实例-Github原创 2021-08-17 19:56:58 · 247 阅读 · 0 评论 -
WPF 图片显示不清晰问题的解决
<Image UseLayoutRounding="True" SnapsToDevicePixels="True" RenderOptions.BitmapScalingMode="HighQuality" Source="/BridgeInstantiation;component/Resources/zl.png"/>原创 2021-08-17 18:41:34 · 1172 阅读 · 0 评论 -
WPF界面无法正常显示(资源引用,如转换器),但程序正常运行
问题描述:WPF中要设计出复杂的界面交互逻辑,转换器的使用不可避免。但在实际代码编制过程中,经常会遇到XAML无法识别转换器类的存在(下图),尤其是当使用多重绑定的转换器时,VS的设计界面无法正常显示,但这些并不意味着代码有问题,因为程序是可以正常运行的。解决方案:偶然机会,在将VS语言从中文更换至英文时,上述问题得到了解决。尚不清楚其原因,但大家遇到类似问题时,不妨尝试。...原创 2021-07-14 18:33:13 · 2902 阅读 · 0 评论 -
WPF TreeView 启动时如何默认选择首个节点
问题描述:TreeView控件不具有SelecedItem 和 SelectedIndex 属性,其内部元素的选中特性由TreeViewItem 的 IsSeleced 属性控制。默认情况下启动时,TreeView不存在任何选中项,这往往不是我们想要的,用户更多地是希望启动时默认选择第一个节点,使得界面不至于以空白形式呈现。XAML<TreeView.ItemContainerStyle> <Style TargetType="{x:Type TreeViewItem}"..原创 2021-06-18 10:45:37 · 2125 阅读 · 0 评论 -
WPF MVVM 如何在 ViewModel 中关闭界面窗口
01 xaml<Button Width="80" Command="{Binding CancelCmd}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"></Button>02 后台csprivate CommandBase cancelCmd;public C..原创 2021-05-31 13:58:24 · 2274 阅读 · 0 评论 -
如何解决WPF中 ScrollViewer 内包含 TreeView 或者 ListBox 等控件时滚轮事件被劫持的问题
以DataGrid为例,应先设置其横纵向的滚动条不可用<DataGrid ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" />定义ScrollViewer的滚动事件// scrollViewer的滚动事件private void scrollViewer_PreviewMouseWheel(object send..原创 2021-04-25 19:26:30 · 958 阅读 · 0 评论 -
WPF—多重绑定和跨层级绑定
<!--树节点展开属性由多个因素决定,故而采用多重绑定 --> <Setter Property="IsExpanded"> <Setter.Value> <MultiBinding Converter="{StaticResource EnableConverter}" UpdateSourceTrigger="PropertyChanged"> <!--指定绑定的ItemSource,而非默认的tr.原创 2021-04-22 20:04:46 · 1469 阅读 · 1 评论 -
WPF界面异常:未将对象引用设置到对象实例
InitializeComponent();if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))return;// your code, eg viewModel参考资料:WPF: Tips - Designer Detection原创 2021-02-26 16:18:47 · 1170 阅读 · 0 评论 -
WPF 数据验证—实例讲解(内含效果动画)
文章目录一、前言二、方法及步骤2.1 自定义验证规则2.2 数据绑定三、应用实例四、参考文章一、前言WPF 对比 Winform 界面框架的优势之一就在于支持数据绑定(Binding)。在数据绑定的加持下,WPF 轻易地实现了界面交互与数据分离,也就是说 UI 设计与交互功能实现这两项工作不仅可以拆分开来进行分工协作 ,而且最后还能够轻松地整合在一起。后端数据与前端数据绑定后可以实现数据的双向传递,同时在传递过程中,也能对数据进行一些操作,例如数据验证和数据转换,本篇文章重点介绍数据验证。.原创 2020-12-26 15:32:09 · 586 阅读 · 0 评论 -
关于类库项目不能新增资源文件的解决方案
参考链接(1)将下方的XML文本复制到VS项目文件( csproj)中,可使用文本编辑器打开该文件,具体位置见下图<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids><WarningLevel>4</WarningLevel><AutoGenerateBindingR原创 2020-11-29 10:45:33 · 252 阅读 · 0 评论 -
WPF从外部文件或者程序集加载样式或其他静态资源
很多时候我们希望复用WPF中的样式,而通过复制一长串样式代码至XAML中的静态资源显得极为不雅,导致代码不易于管理。而想要改变这种模式有两种方式:(1)新增“资源字典”项目,将样式代码写入该文件中,使用时只需引用该文件即可;(2)将上述的“资源字典”放到一个类库项目中,生成程序集,其他项目想要使用时需引用该程序集,然后添加对应的样式文件路径即可。方法1:方法2:图中显示为引用“Windows.Theme”程序集,样式文件名为“AppButtonStyle.xaml”,而.原创 2020-11-19 23:56:31 · 2296 阅读 · 0 评论 -
WPF数据自动滚动的效果实现
参考资料:WPF中ListBox滚动条自动滚动WPF ListBox如何实现动态加载数据,并且滚动条自动下拉1、UI<Window x:Class="ForTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="...原创 2019-12-19 08:44:16 · 2425 阅读 · 0 评论 -
WPF 点击 Datagrid 中的TextBox 控件获取其所在行的数据
在某事件下:(sender as TextBox).DataContext as <Class>原创 2019-11-29 14:38:52 · 1089 阅读 · 1 评论 -
WPF 获取列表中控件的同时,选中其所在行
参考:wpf中给listview绑定数据并在listview的每一行中添加一个按钮,通过单击按钮获得按钮所在行的数据在 GotFocus 事件中进行处理<ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal" VerticalAlignment...原创 2019-11-28 12:12:27 · 927 阅读 · 0 评论 -
WPF中弹出颜色选择器
1、添加引用路径如下:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\vx.x.x\2、写入事件private void Button_Click(object sender, RoutedEventArgs e) { System...原创 2019-11-26 15:41:59 · 1399 阅读 · 0 评论 -
MVVM
MVVM模式解析和在WPF中的实现C# WPF MVVM框架搭建原创 2019-11-08 16:16:24 · 883 阅读 · 0 评论 -
Live Chart 的数据中含double.NaN时需注意的问题
问题提示:注意点1:其只能用在线形图(LineSeries)的数据中,在其他类型图表中运用时会出错。注意点2:数据不能全是double.NaN!原创 2019-03-06 20:46:07 · 547 阅读 · 0 评论 -
WPF TreeView设置所有节点默认展开
<TreeView.ItemContainerStyle> <Style TargetType="{x:Type TreeViewItem}"> <Setter Property="...原创 2019-03-16 23:38:32 · 6606 阅读 · 0 评论 -
WPF中XAML中使用String.Format格式化字符串示例
参考文章:https://blog.csdn.net/zhruifei/article/details/77975873?utm_source=blogxgwz41、货币格式<TextBlock Text="{Binding Price, StringFormat={}{0:C}}" /> // $123.462、货币格式,一位小数<TextBox Text=...转载 2018-11-25 10:13:03 · 641 阅读 · 0 评论 -
WPF学习—INotifyPropertyChanged Interface
1、 为什么要实现INotifyPropertyChanged接口我们通过UI与数据源的绑定使得UI发生变化时,数据源也会变化,但当数据源改变并需要UI立即改变时我们需要实现INotifyPropertyChanged接口。2、实现方式当属性值发生改变时,将触发property changed 事件,提醒UI属性值发生了改变,并修改自身的UI值。...原创 2018-08-17 09:39:39 · 936 阅读 · 0 评论 -
Live Chart中的Missing Point使用问题
Usedouble.NaNwhen you don't know a value in a line series, that point will be undefined and will be ignored when the series is drawn.其只能用在线形图(LineSeries)中,在其他类型图表中运用时会出错。...原创 2019-02-16 09:37:13 · 707 阅读 · 0 评论 -
DataGrid相关
https://blog.csdn.net/sanjiawan/article/details/6785394 https://blog.csdn.net/weixin_31026691/article/details/79448106https://blog.csdn.net/rabbitsoft_1987/article/details/22949955private void ...原创 2018-09-03 01:07:11 · 197 阅读 · 0 评论 -
WPF调用 ECharts 显示图表
推荐阅读:https://blog.csdn.net/wf824284257/article/details/89002133ECharts:来自百度 ,一个使用 JavaScript 实现的免费开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库ZRender,提供直观...原创 2018-09-04 20:58:21 · 6650 阅读 · 1 评论 -
WPF实现图表绘制
WPF的图表显示的实现方案:(1)InteractiveDataDisplay (微软官方免费,可应用于HTML5、WPF、Silverlight)(2) EChartshttps://blog.csdn.net/weixin_40626630/article/details/823900571、InteractiveDataDisplayhttps://d...原创 2018-09-01 18:49:41 · 4301 阅读 · 0 评论 -
Revit 二次开发添加WPF窗口的办法
1、新建WPF用户控件;2、修改XMAL,将UserControl改为Window;3、并在后台代码中,将类的基类改为Window;4、d:DesignHeight和d:DesignWidth改为Height和Width。...原创 2018-08-31 19:30:44 · 2084 阅读 · 5 评论 -
WPF学习—Margin and Padding
在界面设计时,Margin 和Padding都是对边距进行限制的,其区别在于“一个主外,一个主内”。Margin (边缘)是约束控件与容器控件的边距,设置值分别代表左上右下,使用Margin="20"同时指定四个值。Padding (衬垫)是约束控件内部输入边距的,只有部分控件有此属性。...原创 2018-08-28 20:02:55 · 4852 阅读 · 0 评论 -
WPF学习—小记
1、x:Name和Name的区别不是所有类型都可以使用Name,但是任何类型都可以使用x:Name。只有拥有Name属性,才可以在XAML中使用Name。不同于x:Name,因为这个是附加属性。所以给控件加名字的时候尽量用x:Name2、XAML同时给多行加内容按alt然后选择,就可以选择多行的某一列。3、 转换sender类型...原创 2018-08-22 14:36:26 · 174 阅读 · 0 评论 -
WPF学习—Dependency Properties
当鼠标移动按钮上,按钮文本加粗变红原创 2018-08-15 17:30:11 · 260 阅读 · 0 评论 -
WPF学习—Binding
WPF中,微软将属性这个概念推进了一步,提出了“依赖属性”,即一种可以自己没有值,但能通过使用Binding从数据源获得值的属性。 Binding可以通过XAML语句实现界面与数据(可以是界面元素或后台对象)的耦合(也可以通过代码来实现)。这一实现主要是依靠WPF的另一个特性Dependency Property来实现的可通过配置触发器,决定用户在界面输入的数据在什么时候去修改数据...原创 2018-08-15 10:41:56 · 318 阅读 · 0 评论 -
WPF学习—布局
1、Grid布局行列定义默认平分 (1)在XAML中创建行列 (2)在代码中创建行列(在窗口载入时执行)Margin属性为距Grid边框四边的距离 :左上右下Margin="left,top,right,bottom"/>2、StackPane 3、嵌套布局...原创 2018-08-14 23:35:47 · 228 阅读 · 0 评论 -
C#中将DataGrid绑定到SQL Server数据库,显示数据库中的数据
思路流程整理sqlDataadapter的作用是实现 DataTable和 DB 之间的桥梁实现方法1(自用):string strConn="uid=账号;pwd=密码;database=数据库;server=服务器";//SQL Server链接字符串 SqlConnection connSql=new SqlConnection (strConn);...原创 2018-09-03 03:37:22 · 4087 阅读 · 1 评论 -
C#中将DataGrid上的修改同步到SQL Server数据库中
关于C#中如何将DataGrid绑定到SQL Server数据库的问题:https://blog.csdn.net/weixin_40626630/article/details/82323182 关于数据库与DataGrid的同步问题,要记住这句话:sqlDataadapter的作用是实现DataTable和DB之间的桥梁1、数据更新机制当调用SqlDataAdapter...原创 2018-09-03 03:47:02 · 1489 阅读 · 0 评论 -
WPF中给TextBox/TextBlock设置提示文本
效果如图:代码如下:<TextBox.Resources> <VisualBrush x:Key="HintText" TileMode="None" Opacity="0.5" Stretch="None" AlignmentX="Left"> <VisualBrush.Visual&g原创 2019-01-11 21:34:51 · 3738 阅读 · 0 评论 -
TabControl 与 DataGrid 的 SelectionChanged冲突问题
DataGrid作为TabControl控件的TabItem的content元素。当操作DataGrid的不同cell时,会引发了TabControl的SelectionChanged事件的问题。正确的使用方式有2中方法:方法一:private void TabControl_SelectionChanged(object sender, SelectionChangedEventAr...原创 2018-12-30 22:02:10 · 560 阅读 · 0 评论 -
WPF ComBox with CheckBox
https://blog.csdn.net/wqy_zyc/article/details/79566506http://blogs.microsoft.co.il/justguy/2009/01/19/wpf-combobox-with-checkboxes-as-items-it-will-even-update-on-the-fly/原创 2018-12-13 18:05:30 · 915 阅读 · 0 评论 -
在WPF中使用winform控件WebBrowser
为了使用Winform控件中的WebBrowser,而WPF窗体不能直接运行WinForm控件,然后在WPF窗体上添加WindowsFormsHost控件,此WindowsFormsHost控件可作为Win From控件运行的容器。1、首先,我们需要向项目中的引用(reference)中添加两个动态库dll,一个是.NET库中的System.Windows.Forms,另外一个是Windows...原创 2018-10-19 09:51:03 · 2414 阅读 · 3 评论 -
WPF中如何获取选中行/单元格所在行的数据
标题的需求一般建立在SelectionChanged 事件中,当选择发生变化,获取的行号也就发生变化,则可以根据需要获取各个行的数据。DataGrid在获取行时,需要从SelectedItem转换成DataRowView进行操作。1、获取所在行数据DataRowView dr = dg.SelectedItem as DataRowView; if (dr !...原创 2018-09-07 00:42:22 · 7295 阅读 · 1 评论 -
WPF绘图—Live Charts
目录1、动态可见性2、图表标签的理解3、AxisSection1、动态可见性https://lvcharts.net/App/examples/v1/wpf/Dynamic%20Visibility2、图表标签的理解设置轴网交点无几何形态:PointGeometry = DefaultGeometries.None,设置线系列以下不填充:Fi...原创 2018-09-09 09:14:37 · 21605 阅读 · 2 评论 -
WPF 绘图工具汇总
Free tools supporting panning / zooming:Live Charts DynamicDataDisplay- a nice, open source data visualization library. Unfortunately it's not been updated since April 30, 2009. OxyPlotFree tool...原创 2018-09-09 08:38:54 · 2103 阅读 · 0 评论 -
WPF学习—控件
1、 sender含义 private void button1_Click(object sender, RoutedEventArgs e) { Button btn = (Button)sender; //类型转化 }sneder:代指触发的控件,由于不知道具体控件类型(控件类),所以且类别设为object,WP...原创 2018-08-14 20:50:11 · 979 阅读 · 0 评论