二、子页面
1、view.xaml
<Button Content="接谈" Command="{Binding DataContext.JtCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}"
Style="{StaticResource ButtonSuccess}" CommandParameter="{Binding Param}" Cursor="Hand"/>
2、viewmodel
public RelayCommand<string> JtCommand =>
new Lazy<RelayCommand<string>>(() =>
new RelayCommand<string>(Jt)).Value;
private void Jt(string param)
SendInfo = param;
//消息传递给PindexModel接收,打开新的页面,第二个参数为消息key,控制接收对象
Messenger.Default.Send<String>(SendInfo, "AddTab");
三、主窗体页面
1、viewmodel
public PIndexViewModel()
MenuList = GetMenuList();
MenuSelectedIndex = 0;
DataList = GetTabControlDataList();
//接收其他页面传递的消息,第二个参数为消息key,控制接收对象
Messenger.Default.Register<String>(this, "AddTab", ReceiveInfo);
DateShow();
timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(1);
timer.Tick += new EventHandler(TimerTick);
timer.Start();
/// <summary>
/// 消息处理
/// </summary>
/// <param name="msg"></param>
private void ReceiveInfo(string msg)
AddTabItem(msg);
2、xaml.cs
public PIndex()
InitializeComponent();
//卸载当前(this)对象注册的所有MVVMLight消息
this.Unloaded += (sender, e) => Messenger.Default.Unregister(this);
Qt 版本5.5.1。
实现了动态创建Tab按钮,和动态创建Tab页,并在Page中动态创建Item的功能。
Tab按钮为自定义实现,通过管理布局实现Tab按钮的位置。
Page为stackedWidget中的Page,通过动态创建QWidget的方式,将page添加进去。
Page中有一个listWidget,用来管理Item的创建和布局。
对于想学习动态布局,动态创建stackedWidget的page页的同学非常有帮助。
由于是WPF新手,对于实现子界面嵌入到父窗口的某一指定位置很疑惑,从网上试验了许多方法,最终解决了。
可以通过ContentControl , Frame , Page 等实现类似嵌套的效果。
例如1.创建主界面为:
概述 很多时候,我们设计的界面总是感觉缺乏美感,不是我们不会开发好看的界面,而是不知道怎么才算美观,这时候我们不妨看看别人好的页面是怎么做的.下面展示一些我觉得做的比较好的cs界面,希望能给大家在平时做界面设计时提供一些参考和灵感.展示一:权限管理系统效果预览,这是一套权限管理系统来源:https://www.cnblogs.com/zt199510/p/15151835.html展示二:H...
1.通过代码形式, 先加入Panel, 然后依次加入你要的控件。 StackPanel panel = new StackPanel(); Button button=new Button(){Content="button1"}; TextBlock textblock= new TextBlock(){Text="TextBlock1"}; p...
记得以前在Winform中,用一个panel控件当作容器,成功实现了不同窗体的嵌套显示,可是WPF中已经没有了这个控件,想要实现这个效果,这里就不得不提UserConrol了:
"用户控件"继承自UserControl,而UserControl继承自ContentControl,也就是内容控件
UserControl和Window是在同一个层次上的,同样具有xaml和cs文件
主窗体下:
public partial class OperatorMain : Window
站长使用.Net Core 3.1创建的WPF工程,创建“DropDownMenu”解决方案后,需要添加两个Nuget库:MaterialDesignThemes和MaterialDesignColors,上图的效果是使用该控件库实现的,非常强大。常用菜单可以采用TreeView树形控件+特定样式实现 ,本文介绍的是使用Expander+ListView的组合形式实现的导航菜单,两种各有各的好处,本文不做优劣评价。ViewModel中定义的两个菜单相关的类,将菜单及业务用户控件关联。
新建用户控件为嵌套页面,在XAML页面的样式代码如下:
<UserControl x:Class="WPF_Client.Views.SystemInformation.UC_StaffAccountManage"
xmlns="http://schemas.microsoft.com/winfx/2006/xa...