![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
WPF
清泉灵弦
这个作者很懒,什么都没留下…
展开
-
WrapPanel水平布局保持不换行的写法示例
UI需求宽高: 235px*285px内容宽度: 191px要求: 每行2个,右边距15,下边距10代码写法:测量后发现两个item+margin=191,所以让wrappanel定宽191item中grid套个border,在border中设置左右间距7.5,这样两个元素加起来的宽就是15,由于左边距多了7.5,所以在上一层grid左缩进7.5拉回来就可以了效果:...原创 2020-07-23 11:24:26 · 734 阅读 · 0 评论 -
获得ListBox自身的滚动条
var scroller = (ScrollViewer)ListBox.GetPrivateProperty("ScrollHost").GetValue(ListBox);直接这样就可以拿到ListBox内部默认的滚动条了原创 2020-07-09 11:03:25 · 397 阅读 · 0 评论 -
WPF滚动条滚动到中央位置
/// <summary> /// 水平滚动到中央 /// </summary> /// <param name="scroll"></param> public static void ScrollToHorizontalCenter(ScrollViewer scroll) { v...原创 2020-02-25 15:17:13 · 755 阅读 · 0 评论 -
[WPF]窗口失去焦点的处理方法
在wpf中,控件失去焦点可以用LostFocus,然而Window并没有失去焦点这个概念,所以我们需要用非活跃事件Deactivated来认为窗口失去了焦点例如,写一个窗口失去焦点时关闭这个窗口的事件:...原创 2020-02-24 18:41:43 · 4599 阅读 · 0 评论 -
WPF窗口防止系统关闭按钮关闭窗体的办法
在windows窗体内重写事件OnClosing protected override void OnClosing(CancelEventArgs e) { e.Cancel = true; Hide(); }原创 2020-02-12 23:07:41 · 1741 阅读 · 0 评论 -
WPF计算坐标帮助类
public static class PointHelper{ static FrameworkElement MainWindow => Application.Current.MainWindow; /// <summary> /// 把屏幕中的一个点的坐标转换成该窗体Window中的坐标 /// </summary> ...原创 2020-01-21 17:48:23 · 373 阅读 · 1 评论 -
WPF窗体设置最大化时禁用更改大小,恢复后允许更改窗口尺寸
public class WindowBase : Window { public WindowBase() { } protected override void OnStateChanged(EventArgs e) { ResizeMode = WindowState ...原创 2020-01-17 11:01:50 · 742 阅读 · 0 评论 -
wpf列项中如何显示内容的解释,如ListBoxItem,ComboBoxItem
在列项样式设置中(例如ListBoxItem),是如何显示子项内容呢,答案在这里IsItemsHost是设置此panel是否是列项宿主,属性解释如下:原创 2020-01-15 18:34:56 · 480 阅读 · 0 评论 -
WPF自定义tooltip样式
tooltip其实和popup很像,但是popup弹出后需要监听鼠标点击事件,所以触感不流畅,弹出后不会自己消失而tooltip在鼠标滑过时会显示,移开后会隐藏tooltip因为可以接受类对象,所以可以传任意内容给样式模板代码: <!-- =============== 提示文本样式 =============== --> <Style x:Key...原创 2019-12-26 14:14:47 · 2918 阅读 · 0 评论 -
wpf的页面XAML设置静态参数的办法
先配置一个静态参数然后在页面上这样用原创 2019-12-10 16:43:39 · 515 阅读 · 0 评论 -
ListBox中ListBoxItem有popup,切换列表项时popup弹框弹起后不消失问题
在listbox的选项中有个鼠标弹起命令,这个命令会弹起一个popup,结果在切换listbox后,popup弹起后一直不消失前端代码如下: <!-- 流程弹框 --> <Popup x:Name="flowPopup" Style="{StaticResource flowPopup}" IsOpen...原创 2019-12-06 16:18:36 · 502 阅读 · 0 评论 -
WPF设置TextBox边框为圆角
<TextBox> <TextBox.Resources> <Style TargetType="{x:Type Border}"> <Setter Property="CornerRadius" Value="15"/> <Setter Property="BorderBrush" Value="#c1d0dc"/>...原创 2019-11-26 14:31:47 · 1458 阅读 · 0 评论 -
一个标准的ListBox样式示例
<ListBox BorderBrush="Transparent" BorderThickness="0" MaxHeight="600" VerticalAlignment="Top" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibili...原创 2019-04-17 20:38:05 · 584 阅读 · 0 评论 -
wpf触发器DataTrigger绑定切换
<Style x:Key="playBtn" TargetType="{x:Type control:ButtonWithIcon}"> <Setter Property="Cursor" Value="Hand"/> <Setter Property="Width" Value="28"/> ...原创 2019-06-13 16:52:46 · 1716 阅读 · 0 评论 -
在触发器中设置图片旋转和位移
<!-- 更多按钮 --><Style x:Key="moreBtn" TargetType="Button"> <Setter Property="HorizontalAlignment" Value="Right"/> <Setter Property="VerticalAlignment" Value="Top"/> <Sett...原创 2019-06-06 15:38:54 · 195 阅读 · 0 评论 -
wpf绑定属性的相对路径写法
<Style x:Key="trumpetBtn" TargetType="{x:Type quJiao:ButtonWithIcon}"> <Setter Property="Cursor" Value="Hand"/> <Setter Property="IsHitTestVisible" Valu...原创 2019-05-16 11:28:41 · 2435 阅读 · 0 评论 -
WPF的TextBlock绑定多个参数的写法(多重绑定)
<Style x:Key="showTxt" TargetType="{x:Type TextBox}"> <Setter Property="Text"> <Setter.Value> <!-- 多重绑定 --> <MultiBinding StringFormat="{}{0}({1})"> <Bin...原创 2019-05-15 14:36:27 · 6535 阅读 · 0 评论 -
在样式Style中的触发器属性中设置样式值
<Style x:Key="CheckButtonSingle" TargetType="{x:Type local:CheckButton}"> <Setter Property="FocusVisualStyle" Value="{x:Null}"/> <Setter Property="Width" Value="60"/> <Setter ...原创 2019-04-30 10:00:28 · 494 阅读 · 0 评论 -
ComboBox下拉框样式,带设置圆角外框和选中内容
<!-- 下拉列表中ToggleButton --> <Style TargetType="ToggleButton" x:Key="stlToggleButton"> <Setter Property="FocusVisualStyle" Value="{x:Null}"/> <Setter Proper...原创 2019-04-18 16:07:32 · 3079 阅读 · 0 评论 -
wpf中枚举Enum类型绑定问题
正常情况枚举类型是不能绑定显示的,所以需要一个转换器将枚举转为字符串才能正常在控件里显示具体代码如下:转换器:/// <inheritdoc />/// <summary>/// 枚举转字符串/// </summary>[ValueConversion(typeof(Enum), typeof(string))]public class ...原创 2019-04-23 10:56:46 · 1735 阅读 · 0 评论 -
注意在WPF中,编写Label模板时TextBlock的绑定
<Style TargetType="Label"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Label"> <TextBlock x:Name="txt" Grid.Column="1" ...原创 2019-04-22 22:16:49 · 842 阅读 · 0 评论 -
关于BackgroundWorker进度报告时界面进度不能正常显示的问题
当后台任务进行时,需要在主程序给个延迟以保证后台在刷新进度显示时有足够时间显示出来所以要在主进程里走进度,而不是BackgroundWorker的通知举例如下:1. 声明一个后台任务readonly BackgroundWorker bgWorker;2. 设置任务/* ---------- 设置线程任务 ---------- */bgWorker = new Ba...原创 2019-07-18 16:23:11 · 994 阅读 · 0 评论 -
未能加载文件或程序集 GalaSoft.MvvmLight
发生此问题的原因是原工程是NET3.5,升级到4.5.2后关联引用并没有改变导致报错的地方是在注册messenger的时候提示错误跟踪进去注意这里如果引用的lib不匹配,在nuget里卸载重新安装即可...原创 2019-07-17 11:55:03 · 1547 阅读 · 0 评论 -
WPF的ComboBox选中时改变图片
在combobox中设置选项模板,并设置触发条件更换绑定即可 <ComboBox x:Name="BorderTypeComboBox" Margin="18,0,0,0" Width="68" Height="25" ...原创 2019-01-03 20:15:55 · 491 阅读 · 0 评论 -
wpf图片image增加圆角的附加属性写法
public class ImageProperty { //图片圆角 public static CornerRadius GetCornerRadius(DependencyObject obj) { return (CornerRadius)obj.GetValue(CornerRadiusProper...原创 2019-09-23 14:58:26 · 1525 阅读 · 1 评论 -
WPF字体资源引用不起作用问题
字体资源在工程目录QuJiaoResource/Resource/Fonts中,引用后发现不起作用,最后发现是需要把字体文件属性的生成操作设置为"Resource"就好了引用字体: <!-- 默认字体 --> <FontFamily x:Key="DefaultFontFamily"> pack://application:,,,/Q...原创 2019-08-27 15:25:17 · 1307 阅读 · 0 评论 -
WPF自定义banner
前端页面:<UserControl x:Class="QuJiao.BannerViewer" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"...原创 2019-08-12 21:56:40 · 462 阅读 · 0 评论 -
WPF后台页面使用前端设置的样式资源
例如前端定制了一个样式: <!-- banner图片 --> <Style x:Key="bannerImgStyle" TargetType="Image"> <Setter Property="Width" Value="{Binding Path=ActualWidth,RelativeSource={...原创 2019-08-12 14:36:49 · 754 阅读 · 0 评论 -
WPF弹框阴影与内容一起显示且不会被切割的样式方法
<!-- 更多按钮弹框 --><Popup x:Name="unfoldPopup" PopupAnimation="Fade" AllowsTransparency="True" HorizontalOffset="-30" VerticalOffset="-5" Placement="Bottom" PlacementTar...原创 2019-08-09 18:28:41 · 266 阅读 · 1 评论 -
WPF中让滚动条滚动到指定元素位置
/// <summary> /// 垂直方向滚动到顶部 /// </summary> /// <param name="element"></param> /// <param name="scrollViewer"></param> public static void ScrollViewToVertical...原创 2019-08-05 11:18:06 · 2706 阅读 · 0 评论 -
当Margin变更后鼠标IsMouseOver事件重复触发问题的解决办法
有这样一个需求当鼠标移过时,要有个立体阴影,上移10px来显示这个效果但是问题来了,当鼠标移动到这个移动后的10px位置后,会疯狂的上下跳动最后找到了办法,是在控件外套一个grid且把背景色设为透明,这样就会产生一个IsMouseOver的阻挡,不会疯狂跳动了...原创 2019-07-30 19:29:30 · 238 阅读 · 0 评论 -
WPF在TreeView的子项中的TextBlock,触发点击事件时,获得当前文本框所在的TreeViewItem数据对象
要实现的效果是,在一个深层treeview控件的treeviewitem中有个textblock,而我要在点击这个textblock时阻断向下传递(e.handle=true),并且将当前这个项的绑定属性IsExpanded设置相反值前台代码如下:后台代码:核心知识点:传递到后台的控件对象sender,其绑定的DataContext上下文即是当前treeviewitem的上...原创 2019-07-19 18:22:44 · 2131 阅读 · 2 评论 -
UserControl中,Button点击展开Popup,在鼠标点击其他地方后Popup不能关闭问题
找了一天,最后定位到问题的原因是,用于点击的Button的ClickMode必须为Release时,popup才会响应原理是因为,当点击模式是Press时,popup已经弹出了,但是焦点还是在button上所以鼠标移开点击其他区域时popup已经没有触发失去焦点的机会了,因此一直不会关闭而点击模式是Release时,鼠标的整个点击流程已经结束后popup才弹出,所以仍然会获得焦点,且响...原创 2019-04-22 16:17:49 · 1912 阅读 · 2 评论 -
滚动条ScrollViewer防止滚动时按内容跳跃式滚动的设置
属性中将CanContentScroll设置为False,滚动时就不会跳了,会连续的滚动原创 2019-04-09 21:54:35 · 317 阅读 · 0 评论 -
WPF的ScrollViewer鼠标滚轮时不会被其他控件阻断问题(e.Handled = true)
前台代码:添加事件:PreviewMouseWheel<ScrollViewer x:Name="ScrollViewer" PreviewMouseWheel="UIElement_OnPreviewMouseWheel"</ScrollViewer>后台代码:void UIElement_OnPreviewMouseWheel(obj...原创 2019-01-29 19:14:08 · 1177 阅读 · 0 评论 -
WPF自定义控件的自定义属性绑定后不更新问题
需要在绑定时设置属性变更触发UpdateSourceTrigger=PropertyChanged例如:<Border CornerRadius="20"> <Border.Background> <ImageBrush x:Name="objBackImg...原创 2019-02-14 18:26:47 · 2595 阅读 · 0 评论 -
WPF让TextBox控件显示为一条横线,textbox输入框无边框只保留底端横线
下载地址:https://download.csdn.net/download/fireghost57/10932946原创 2019-01-22 20:42:38 · 4652 阅读 · 0 评论 -
WPF的MainWindow设置背景透明仍然显示黑色Black问题
<Window ... AllowsTransparency="True" Foreground="{x:Null}" Background="{x:Null}" FocusVisualStyle="{x:Null}">注意要设置AllowsTransparency=true,允许透明色,否则就是黑色...原创 2019-01-28 11:54:38 · 2427 阅读 · 0 评论 -
关于MVVM的事件绑定
为了符合MVVM框架设计,所以需要将页面控件的事件绑定到VM中进行处理.同时,绑定的事件传值可以不再受限于原来的后端页面逻辑,可以传任何你需要处理的页面参数、控件参数和VM等举例说明:<RichTextBox x:Name="rtBox"> <i:Interaction.Triggers> <i:EventTrigger EventName="Da...原创 2019-01-15 11:42:03 · 1541 阅读 · 0 评论 -
使用HTML Editor时引用MSHTML报错:warning MSB3283: 找不到类型库“MSHTML”的包装器程序集。请验证 (1) 是否已正确注册 COM 组件
操作系统: Win10 x64引用方式:提示报错:看了下引用路径:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PublicAssemblies\Microsoft.mshtml.dll然后把路径下的dll拷贝出来放项目里直接引用就可以了...原创 2019-01-02 15:13:52 · 5321 阅读 · 1 评论