wpf-杂项

获取主程序(主窗口)对象

Window mainwin = Application.Current.MainWindow;
MessageBox.Show(mainwin.Title, mainwin.Title);

((TESTAPP.MainWindow)Application.Current.MainWindow).nng_python.test();

改变主窗口大小

```

## 窗口置顶

```c#
private void chk_ontop_Click(object sender, RoutedEventArgs e)
{
if (App.db.m_config[0].OnTop)
{
Topmost = true;
}
else
{
Topmost = false;
}
App.db.Update_model(App.db.m_config[0]);
}

判断当前的 UC 控件

if (grid_main.Children[0] is MRLGauger.uc.UCMeasureDisplay)
{
measurDisplay = (UCMeasureDisplay)grid_main.Children[0];
if (UCMeasureDisplay.FLAG_PLUGIN_DATA_PROC_LOGIN != (measurDisplay.flag& UCMeasureDisplay.FLAG_PLUGIN_DATA_PROC_LOGIN))
{
MessageBox.Show("算法驱动尚未加载,请检查程序是否正常。");
return;
}
}

启动居中

// xml 里面添加
WindowStartupLocation="CenterScreen"

支持Winforms

// 编辑项目文件
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms>
<Platforms>AnyCPU;x64</Platforms>
</PropertyGroup>

关闭窗体

//关闭当前窗体
this.Close();

// 关闭所有窗体
Application.Current.Shutdown();

程序图标

工程上右键——属性——应用程序——图标和清单,选刚才的那个图标
需要 ico 图片

版本和版权信息

项目右键-属性 里面

Visibility可视性属性

有三种值:Collapsed、Hidden、Visible。

Hidden仅仅是属性设为不可视,但是属性在画面上依然占有空间。
Collapsed,在不可视的基础上,它还能将属性在画面上的占位符清除,属性将彻底不影响画面。所以,某些时候使用Collapsed将更为合理。

例如:在StackPanel中使用该属性的时候最为明显。三个对象在同一个StackPanel中,中间的对象如果Hidden,还将占有Stack中的位置,而Collapsed的话,下面的对象就会挤上来,占据中间对象的位置。