
wpf
qs7016
努力前进
展开
-
wpf 实现单实例运行与重启
bool createNew = false; GlobalParam.MutexRun = new System.Threading.Mutex(true, UNIQUESTR, out createNew); if (createNew) { var application = new App(); application.InitializeComponent(); application.Run(); } else { MessageBox.Sh..原创 2020-12-11 14:26:47 · 699 阅读 · 0 评论 -
wpf 主窗体调用子窗体时报错System.InvalidOperationException: 只能在隐藏窗口上调用 ShowDialog
最近在做wpf的项目,发现了一个奇怪的问题,花了很长时间才解决,在此记录一下。问题: 主窗体调用子窗体使用的是ShowDialog(),有的子窗体可以正常调用,但是有的子窗体调用后会catch到异常:System.InvalidOperationException: 只能在隐藏窗口上调用 ShowDialog。解决方法:经过深入分析后发现根本原因是子窗体中在构造函数中调用了this.show()。去掉this.show(),后在调用此子窗体不再报错。...原创 2020-12-11 10:09:34 · 1896 阅读 · 0 评论 -
wpf datagrid 设置列单元格显示两行内容,内容超出单元格长度后已省略号显示
<DataGrid.Columns> <DataGridTemplateColumn Header="编辑时间" Width="60"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <!--设置当单元格内容超过最大长度时,显示...--> ..原创 2020-10-14 09:55:46 · 2728 阅读 · 0 评论 -
wpf textbox只允许输入数字和分号
textbox只允许输入数字和英文分号,方法是将textbox的输入法禁用,然后使用previewkewdown进行检测即可。直接上代码private void textBoxTrain_PreviewKeyDown(object sender, KeyEventArgs e){ if ((e.Key >= Key.D0 && e.Key <= Key.D9) //大键盘0-9 || (e.原创 2020-09-04 14:26:11 · 741 阅读 · 0 评论 -
wpf 网格只显示行线
wpf项目中网格只在设计中显示,要想在编译后显示需要在前台中进行相应的设置。只显示行线: <Border Grid.Row="0" Grid.ColumnSpan="3" BorderBrush="LightBlue" BorderThickness="0,1,0,1"></Border> <Border Grid.Row="1" Grid.ColumnSpan="3" BorderBrush="LightBlue" BorderThickness=原创 2020-08-25 11:02:24 · 527 阅读 · 0 评论 -
wpf 窗口设置位置后,先在屏幕中央显示一下后,才在设置的位置显示窗口
wpf 窗口设置位置后,先在屏幕中央显示一下后,才在设置的位置显示窗口。解决方案如下:在窗体load事件中设置窗体显示位置后,加上this.show(),即可解决。 private void MetroWindow_Loaded(object sender, RoutedEventArgs e) { try { double screenWidth = System.Windows.SystemPara原创 2020-08-14 16:45:19 · 465 阅读 · 0 评论 -
wpf窗体注销后出现登录界面
登录后出现主界面,点击注销按钮后,主界面消失,再次出现登录界面;注销按钮事件中加入以下代码即可实现。参考:https://bbs.youkuaiyun.com/topics/390848954 Application.Current.Shutdown(); Thread thread = new Thread(new ThreadStart(reStart)); thread.Start(); private void reStart()转载 2020-08-14 16:34:28 · 893 阅读 · 0 评论 -
wpf 中datagrid不显示数据问题
wpf的datagrid中明明绑定了数据源,但是不显示数据,很奇怪。后来发现绑定的数据源中内容必须为属性才能正常显示,字段是不会显示的。 private void LoadTest() { List<testTrain> testLis = new List<testTrain>(); testTrain obj = new testTrain(); obj.cheCi = "1001";原创 2020-07-14 15:00:32 · 2950 阅读 · 0 评论