空域问题是由于Winform与WPF在底层渲染机制上有所区别而导致的.多数情况下,开发者为了实现不规则的窗体并承载Winform控件时,遇到此类问题.当WPF窗体设置为允许透明(也就是AllowsTransparency=True)时,Winform Control 会出现不显示等情况,为了避免此问题,许多UI框架在实现不规则窗体时,用Win32 API 去实现不规则窗体的一些特效,比如透明,圆角等,这样WPF窗口的AllowsTransparency属性就可以设为FALSE,从而绕过了空域问题…
通常在WPF中出现异常,会导致程序Crash,即使把异常Throw出来,依旧会报错,解决方法只需在App.xaml.cs中进行处理即可,废话不说,代码如下: private int exceptionCount; private void Application_Startup(object sender, StartupEventArgs e) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledExce…
在WPF中,当我们尝试向TextBox中拖放文件,从而获取其路径时,往往无法成功(拖放文字可以成功).造成这种原因关键是WPF的TextBox对拖放事件处理机制的不同,具体可参考这篇文章Textbox Drag/Drop in WPF,本文只是介绍如何解决这一问题. 解放方法如下: 使用PreviewDragOver和PreviewDrop事件代替DragOver和Drop事件. <TextBox Height=”100″ PreviewDragOver=”TextBox_PreviewDrag…
今天实验一个绘图算法的时候,偶然发现重载Window.OnRender的方法是没有效果的. public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } protected override void OnRender(DrawingContext dc) { dc.DrawEllipse(Brushes.Orange, , ); } } 在网上搜了一下,解决方案倒也比较简单,将…
在WPF中,默认的Password控件的Password属性是不允许为之绑定的,下面是一个解决绑定Password的方法的代码: 1.前台代码 <Window x:Class="PasswordBoxDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/…
目录 解决 VS2019 中.net core WPF 暂时无法使用 Designer 的临时方法 安装 vs 2019 professional/enterprise版本 在vs的设置里,勾选.NET core下的"Use preview SDK" 使用vs自带的模板,选择其中的 .net core WPF 创建Project, 取名为"CoreHiWPF" 在刚创建的Solution中使用vs自带的模板,选择其中的.net framework WPF添加新的pr…
总结起来就是:设计器的版本要跟外部引用的库版本一致,否则XAML设计器就会显示不出来. 例如你的程序是X64的,但是引用的COM组件是32位的,就会显示不出来.这里的建议是:编译一个32位的COM中间件,供界面显示,实际调用还是那个64位的库. 在WPF中,当使用了绑定,引用预定义的资源,以及转换,验证等功能时,如果版本不对应,就会看到以下界面(说明:WPF程序生成版本是X64,程序中定义的资源,转换器等也属于64位,如果设计器选择的是AnyCpu或X86,那界面就会显示不出来.) 如果设计器和…
解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题 当我们改变ListBox的ItemsSource时,会发现这样一个问题:数据源变化时,虽然控件中的内容会跟着变化,但滚动条却不会重置. 举个例子: 将ListBox绑定到一百个字符串:listbox.ItemsSource = Enumerable.Range(0, 100).Select(i => "## " + i);. 将ListBox的滚动条拖到最后,使之能看到最后的"#…
WPF中所有的集合类控件,子项都不能继承父级的DataContext,需要手动将绑定的数据源指向到父级控件才可以. <DataGridTemplateColumn Header="操作"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Button Command="{Binding DataContext.DeleteCommand, RelativeSource={Re…
一.视频呈现 前段时间,在一个wpf的项目中需要实时显示ip摄像头,对此的解决方案想必大家都应该知道很多.在winform中,我们可以将一个控件(一般用panel或者pictruebox)的句柄丢给摄像头的sdk以实现该功能,而在wpf中我们同样可以使用该方案快速实现. 我们以海康平台为例,海康的sdk就需要我们传递一个控件的句柄,winform中可以直接使用控件的handle属性来获取句柄,而在wpf中我们则有两种方法: 1.将WindowsFormsHost作为容器在内部嵌套一个winfor…