private void InitializeMenuTop() { MenuItem dataShowTypeMenuItem = new MenuItem(); dataShowTypeMenuItem.Header = "显示模式"; string[] dataShowTypes = Enum.GetNames(typeof(DataShowType)); foreach (var item in dataShowTypes) { DataShowType dataShowType = (DataShowType)Enum.Parse(typeof(DataShowType), item); MenuItem menuSubItem = new MenuItem() { Header = item, Tag = dataShowType }; menuSubItem.Click += new RoutedEventHandler(MenuSubItem_Click); dataShowTypeMenuItem.Items.Add(menuSubItem); } this.menuTop.Items.Add(dataShowTypeMenuItem); }
private void MenuSubItem_Click(object sender, RoutedEventArgs e) { MenuItem selectedFunNum = sender as MenuItem; this.dataShowType = (DataShowType)selectedFunNum.Tag; }
/// <summary> /// 自定义每个页面的样式 /// </summary> /// <param name="title">页面的标题</param> /// <param name="type">是选择卡片,还是数字键</param> /// <param name="pageNum">页面的页数</param> /// <param name="dataShowType">数据:血压,身高,腰围,体重中的一项</param> /// <param name="cardData">要写入卡片的数据</param> /// <param name="moveType">上一步下一步 上一步提交 下一步</param> public UserUIAllOf(string title, int pageNum, InputType type, DataShowType dataShowType, CardData cardData, MoveType moveType) { InitializeComponent(); //标题 var title1 = new Title { title = title, BackColor = Color.White }; panel1.Controls.Add(title1); title1.Dock = DockStyle.Fill; _titleOf = title; //进度条 var progressBar1 = new ProgressBarUser(pageNum); panel2.Controls.Add(progressBar1); progressBar1.Dock = DockStyle.Fill; _pageNum = pageNum; //数据处理 switch (type) //卡片还是数字键输入 { case InputType.KeyBoard: //如果是数字键的输入 var dataInput1 = new DataInput(); //数据输入事件 dataInput1.SetInput += dataInput1_SetInput; //输入 //数据清除事件 dataInput1.ClearInput += dataInput1_ClearInput; panel3.Controls.Add(dataInput1); dataInput1.Height = (int)(0.40 * panel3.Height / 0.55); dataInput1.Dock = DockStyle.Bottom; _diDataInput = dataInput1; switch (dataShowType) //是哪种数据:血压,身高,腰围,体重中的一项 { case DataShowType.BloodPressure: var dataShowBp = new BloodPressure(); //血压 // panel3.Controls.Add(dataShowBp); //加入panel dataShowBp.Dock = DockStyle.Top; //因为该panel是放卡片 或 键盘和显示数据 ,当时后者的时候,要一分为二 dataShowBp.Height = (int)(0.15 * panel3.Height / 0.55); //设置占比 _bpPressure = dataShowBp; //将局部变量赋值给全局变量 break; case DataShowType.HeightData: var dataShowHd = new HeightData(); //身高 panel3.Controls.Add(dataShowHd); dataShowHd.Dock = DockStyle.Top; dataShowHd.Height = (int)(0.15 * panel3.Height / 0.55); _hdHeightData = dataShowHd; break; case DataShowType.WaistLine: var dataShowWl = new WaistLine(); //腰围 panel3.Controls.Add(dataShowWl); dataShowWl.Dock = DockStyle.Top; dataShowWl.Height = (int)(0.15 * panel3.Height / 0.55); _wlWaistLine = dataShowWl; break; case DataShowType.WeightData: var dataShowWd = new WeightData(); //体重 panel3.Controls.Add(dataShowWd); dataShowWd.Dock = DockStyle.Top; dataShowWd.Height = (int)(0.15 * panel3.Height / 0.55); _wdWeightData = dataShowWd; break; case DataShowType.PatientAge: var dataShowPa = new PatientAge(); panel3.Controls.Add(dataShowPa); dataShowPa.Dock = DockStyle.Top; dataShowPa.Height = (int)(0.15 * panel3.Height / 0.55); _paPatientAge = dataShowPa; break; default: ; break; } ShowType = dataShowType; break; case InputType.TwoMouseSelect: //如果是两卡片输入 var mouseTwoSelection = new TwoSelection(cardData.CardTitle, cardData.CardContent, cardData.Proportion); //注册卡片点击事件 mouseTwoSelection.TwoSelectionClik += mouseTwoSelection_TwoSelectionClik; panel3.Controls.Add(mouseTwoSelection); mouseTwoSelection.Dock = DockStyle.Fill; break; case InputType.FourMouseSelect: //如果是四卡片输入 var mouseFourSelection = new FourSelection(cardData.CardTitle, cardData.CardContent, cardData.Proportion); //注册卡片点击事件 mouseFourSelection.FourSelectClik += mouseFourSelection_FourSelectClik; panel3.Controls.Add(mouseFourSelection); mouseFourSelection.Dock = DockStyle.Fill; break; } InputStyle = type; //向前向后样式 switch (moveType) { case MoveType.NextAndPrev: var moveNext = new PrevAndNext(); _pnPrevAndNext = moveNext; moveNext.RightString = "下一步"; panel4.Controls.Add(moveNext); moveNext.Dock = DockStyle.Fill; //注册点击事件 moveNext.Next += prevAndNext1_Next; //下一步 moveNext.Prev += prevAndNext1_Prev; //上一步 break; case MoveType.OnlyNext: var onlyNext = new OnlyNext(); panel4.Controls.Add(onlyNext); onlyNext.Dock = DockStyle.Fill; onlyNext.Next += onlyNext_Next; //下一步 break; case MoveType.PrevAndSubmit: var moveSubmit = new PrevAndNext(); _pnPrevAndNext = moveSubmit; moveSubmit.RightString = "提交"; panel4.Controls.Add(moveSubmit); moveSubmit.Dock = DockStyle.Fill; //注册点击事件 moveSubmit.Next += prevAndNext1_Next; //提交,和上面下一步是一个事件 moveSubmit.Prev += prevAndNext1_Prev; //上一步 break; } }