/// <summary> /// 点击增加模板中的打印项 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDeliveryPrintTemplateItemType_Click(object sender, RoutedEventArgs e) { try { FrameworkElement cb = sender as FrameworkElement; if (cb == null) { return; } var deliveryTemplate = this.lstDeliveryPrintTemplates.SelectedItem as PrintTemplate; PrintTemplateItemTypeViewModel vmItem = cb.DataContext as PrintTemplateItemTypeViewModel; PrintTemplateItemViewModelCommon itemViewModel = PrintTemplateItemViewModelFactory.Create(deliveryTemplate, vmItem.Type, vmItem.Type); PrintTemplateItem item = new PrintTemplateItem(); item.RunTimeTag = itemViewModel; item.Id = Guid.NewGuid(); item.Type = vmItem.Type; item.X = (int)this.imgDelivery.Width / 2; item.Y = (int)this.imgDelivery.Height / 2; item.Width = 100; item.Height = 30; item.FontSize = 12; item.FontName = "黑体"; item.Format = itemViewModel.Format; item.Value = itemViewModel.Value; item.Value1 = itemViewModel.Value1; itemViewModel.ApplayStyleAndData(this.FindResource("ThumbStyle") as Style, item); AttachThumbEvents(itemViewModel); //添加到界面 this.cDeliveryHost.Children.Add(itemViewModel.UI); var layer = AdornerLayer.GetAdornerLayer(this.cDeliveryHost); layer.Add(new PrintTemplateItemAdorner(itemViewModel.UI)); deliveryTemplate.Items.Add(item); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// 选择模板 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void lstDeliveryTemplates_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { //清空界面 this.SetDeliveryPrintTemplateItemProperties(null); this.imgDelivery.Source = null; foreach (var thumb in this.cDeliveryHost.Children.OfType <Thumb>().ToArray()) { this.cDeliveryHost.Children.Remove(thumb); } var deliveryTemplate = this.lstDeliveryPrintTemplates.SelectedItem as PrintTemplate; this.dgDeliverPrintTemplateHolder.IsEnabled = deliveryTemplate != null; if (deliveryTemplate == null) { return; } //生成视图对象 PrintTemplateItemViewModelCommon[] briges = deliveryTemplate.Items.Select(obj => PrintTemplateItemViewModelFactory.Create(deliveryTemplate, obj.Type, obj.Type)).ToArray(); for (int i = 0; i < briges.Length; i++) { briges[i].ApplayStyleAndData(this.FindResource("ThumbStyle") as Style, deliveryTemplate.Items[i]); briges[i].Data.RunTimeTag = briges[i]; AttachThumbEvents(briges[i]); } foreach (var thumb in briges) { this.cDeliveryHost.Children.Add(thumb.UI); } var layer = AdornerLayer.GetAdornerLayer(this.cDeliveryHost); foreach (UIElement ui in cDeliveryHost.Children.OfType <Thumb>()) { layer.Add(new PrintTemplateItemAdorner(ui)); } } catch (Exception ex) { Debug.WriteLine(ex.StackTrace); MessageBox.Show(ex.Message + Environment.NewLine + ex.StackTrace, "错误"); } }