Esempio n. 1
0
        private void UpdatePrintControlData(PrintItemModel p, ContentControlBase c)
        {
            List <PropertyModel> Propertys = new List <PropertyModel>();

            if (p.Parameters != null)
            {
                foreach (KeyValuePair <string, string> item in p.Parameters)
                {
                    PropertyModel temp = c.Propertys.FirstOrDefault(x => { return(x.Name == item.Key); });
                    if (temp != null)
                    {
                        temp.Value = item.Value;
                    }
                    if (temp.Name == "pX")
                    {
                        Canvas.SetLeft(c, (double)Convert.ChangeType(temp.Value, typeof(double)));
                    }
                    else if (temp.Name == "pY")
                    {
                        Canvas.SetTop(c, (double)Convert.ChangeType(temp.Value, typeof(double)));
                    }
                }
            }
            c.FunctionData   = p.FunctionData;
            c.ConttrolData   = p.ConttrolData;
            c.PrintKeyValue  = p.PrintKeyValue;
            c.DataSourceType = p.DataSourceType;
            c.Index          = p.Index;
            c.IsValid        = p.IsValid;
            c.Width          = p.Width;
            c.Height         = p.Height;
            AddPrinControlEventHandle(c);
        }
Esempio n. 2
0
 /// <summary>
 /// 拖动添加打印控件
 /// </summary>
 public void AddPrinControlByDrag()
 {
     if (IsMouseEnter && PrintControlFromTool != null)
     {
         ContentControlBase control = CommonRule.LoadClassInstance <ContentControlBase>(this.GetType().Namespace, PrintControlFromTool.GetType().Name);
         Canvas.SetTop(control, PrintControlFromToolOfPosition.Y);
         Canvas.SetLeft(control, PrintControlFromToolOfPosition.X);
         AddPrinControlEventHandle(control);
         canvasSpace.Children.Add(control);
         //更新放置坐标到控件相应属性
         PropertyModel pX = GetPropertyItemByName(control.Propertys, "pX");
         if (pX != null)
         {
             pX.Value = Math.Floor(PrintControlFromToolOfPosition.X);
         }
         PropertyModel pY = GetPropertyItemByName(control.Propertys, "pY");
         if (pY != null)
         {
             pY.Value = Math.Floor(PrintControlFromToolOfPosition.Y);
         }
         CurrentControlBase   = control;
         PrintControlFromTool = null;
         this.Cursor          = null;
     }
 }
Esempio n. 3
0
 private void UserControl_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
 {
     if (PrintControlFromTool != null)
     {
         ContentControlBase control = CommonRule.LoadClassInstance <ContentControlBase>(this.GetType().Namespace, PrintControlFromTool.GetType().Name);
         Canvas.SetTop(control, PrintControlFromToolOfPosition.Y);
         Canvas.SetLeft(control, PrintControlFromToolOfPosition.X);
         AddPrinControlEventHandle(control);
         canvasSpace.Children.Add(control);
         //更新放置坐标到控件相应属性
         PropertyModel pX = GetPropertyItemByName(control.Propertys, "pX");
         if (pX != null)
         {
             pX.Value = Math.Floor(PrintControlFromToolOfPosition.X);
         }
         PropertyModel pY = GetPropertyItemByName(control.Propertys, "pY");
         if (pY != null)
         {
             pY.Value = Math.Floor(PrintControlFromToolOfPosition.Y);
         }
         CurrentControlBase   = control;
         PrintControlFromTool = null;
         this.Cursor          = null;
     }
 }
Esempio n. 4
0
        /// <summary>
        /// 控件右键菜单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void c_OnContentMenuEvent(object sender, ContentMenuEventArgs e)
        {
            MenuItem           m       = e.MenuItem;
            ContentControlBase Control = (ContentControlBase)e.Source;
            int flag = (int)m.Tag;

            if (flag == 1000)
            {
                if (OnPrintControlPropertyEvent != null)
                {
                    OnPrintControlPropertyEvent(Control, e);
                }
            }
            else if (flag == 1001)
            {
                canvasSpace.Children.Remove(Control);
                OnPrintControlPropertyEvent(null, e);
            }

            else if (flag == 1002)
            {
                canvasSpace.Children.Clear();
                OnPrintControlPropertyEvent(null, e);
            }
        }
Esempio n. 5
0
 /// <summary>
 /// 注册事件
 /// </summary>
 /// <param name="c"></param>
 private void AddPrinControlEventHandle(ContentControlBase c)
 {
     c.OnContentMenuEvent         += new EventHandler <ContentMenuEventArgs>(c_OnContentMenuEvent);
     c.OnMouseLeftButtonDownEvent += new MouseButtonEventHandler(c_OnMouseLeftButtonDownEvent);
     c.OnMouseLeftButtonUpEvent   += new MouseButtonEventHandler(c_OnMouseLeftButtonUpEvent);
     c.OnMouseMoveEvent           += new MouseEventHandler(c_OnMouseMoveEvent);
 }
Esempio n. 6
0
        /// <summary>
        /// 获取界面打印信息
        /// </summary>
        /// <returns></returns>
        public PrintFactoryModel GetPrintFactoryInfo()
        {
            string picturResource = string.Empty;
            //打印模板
            PrintFactoryModel p = new PrintFactoryModel();
            //打印条目
            PrintItemModel printItemModel = null;
            //参数集合
            Dictionary <string, string> parameters = null;
            //打印条目集合
            List <PrintItemModel> printItems = new List <PrintItemModel>();

            //工作台Width
            p.Width = Math.Floor(PrintLable.Width);
            //工作台heighht
            p.Height = Math.Floor(PrintLable.Height);
            //获取打印条目
            foreach (UIElement item in canvasSpace.Children)
            {
                if (item is ContentControlBase)
                {
                    ContentControlBase c = item as ContentControlBase;
                    printItemModel = new PrintItemModel()
                    {
                        PrintCaption      = c.PrintCaption,
                        PrintFunctionName = c.PrintFunctionName,
                        PrintKeyValue     = c.PrintKeyValue,
                        DataSourceType    = c.DataSourceType,
                        Index             = c.Index,
                        IsValid           = c.IsValid,
                        ConttrolData      = c.ConttrolData,
                        FunctionData      = c.FunctionData,
                        Width             = c.Width.IsNaN() ? c.ActualWidth : c.Width,
                        Height            = c.Height.IsNaN() ? c.ActualHeight : c.Height
                    };
                    if (c.Propertys != null && c.Propertys.Count > 0)
                    {
                        parameters = new Dictionary <string, string>();
                        foreach (PropertyModel pro in c.Propertys)
                        {
                            parameters.Add(pro.Name, (string)Convert.ChangeType(pro.Value, typeof(string)));
                        }
                    }
                    printItemModel.Parameters = parameters;
                    printItems.Add(printItemModel);
                    if (item is PictureControl)
                    {
                        string fileName = System.IO.Path.GetFileName(c.PrintKeyValue);
                        if (!picturResource.Contains(fileName))
                        {
                            picturResource += string.Format("{0};", System.IO.Path.GetFileName(c.PrintKeyValue));
                        }
                    }
                }
            }
            p.PicturResource = picturResource;
            p.PrintItems     = printItems;
            return(p);
        }
Esempio n. 7
0
 void c_OnMouseLeftButtonUpEvent(object sender, MouseButtonEventArgs e)
 {
     CurrentControlBase = sender as ContentControlBase;
     if (OnPrintControlPropertyEvent != null)
     {
         OnPrintControlPropertyEvent(sender, null);
     }
 }
Esempio n. 8
0
 /// <summary>
 /// 显示控件属性
 /// </summary>
 /// <param name="c"></param>
 public void DisplayPrintCcontrolProperty(ContentControlBase c)
 {
     gdAttribute.Children.Clear();
     gdAttribute.RowDefinitions.Clear();
     gdAttribute.ColumnDefinitions.Clear();
     CurrentPrintControl = c;
     if (c != null)
     {
         CreatePropertyWind(c);
     }
 }
Esempio n. 9
0
 /// <summary>
 /// 工作区获取了焦点才会接收键盘事件
 /// 本案中打印子控件不具有接收焦点的能力,因此增加tbFocus
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void UserControl_KeyUp(object sender, KeyEventArgs e)
 {
     if (e.Key == Key.Delete)
     {
         if (CurrentControlBase != null)
         {
             canvasSpace.Children.Remove(CurrentControlBase);
             OnPrintControlPropertyEvent(null, null);
             CurrentControlBase = null;
         }
     }
 }
Esempio n. 10
0
        /// <summary>
        /// 特殊控件处理
        /// </summary>
        private void DealWithSpecialPrintControl(ContentControlBase c)
        {
            Type t = c.GetType();

            if (t == typeof(RectangleControl))
            {
                DealWithRectangleControl(c);
            }
            else
            {
                //TODO
            }
        }
Esempio n. 11
0
        /// <summary>
        /// 矩形控件处理
        /// </summary>
        /// <param name="c"></param>
        private void DealWithRectangleControl(ContentControlBase c)
        {
            double        y   = Math.Floor(Canvas.GetTop(c));
            double        x   = Math.Floor(Canvas.GetLeft(c));
            PropertyModel pEX = GetPropertyItemByName(c.Propertys, "pEX");

            if (pEX != null)
            {
                pEX.Value = Math.Floor(x + c.Width);
            }
            PropertyModel pEY = GetPropertyItemByName(c.Propertys, "pEY");

            if (pEY != null)
            {
                pEY.Value = Math.Floor(y + c.Height);
            }
        }
Esempio n. 12
0
        /// <summary>
        /// 移动事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MoveThumb_DragDelta(object sender, DragDeltaEventArgs e)
        {
            Control designerItem = this.DataContext as Control;

            if (designerItem.RenderTransform != null && designerItem.RenderTransform is RotateTransform)
            {
                RotateTransform r = (RotateTransform)designerItem.RenderTransform;
                if (r != null)
                {
                    if (r.Angle != 0)
                    {
                        return;
                    }
                }
            }
            if (designerItem != null)
            {
                double left = Math.Floor(Canvas.GetLeft(designerItem) + e.HorizontalChange);
                double top  = Math.Floor(Canvas.GetTop(designerItem) + e.VerticalChange);
                Canvas.SetLeft(designerItem, left);
                Canvas.SetTop(designerItem, top);
                if (designerItem is ContentControlBase)
                {
                    ContentControlBase temp = designerItem as ContentControlBase;
                    PropertyModel      pX   = GetPropertyItemByName(temp.Propertys, "pX");
                    if (pX != null)
                    {
                        pX.Value = left;
                    }
                    PropertyModel pY = GetPropertyItemByName(temp.Propertys, "pY");
                    if (pY != null)
                    {
                        pY.Value = top;
                    }
                    if (designerItem is ContentControlBase)
                    {
                        DealWithSpecialPrintControl((ContentControlBase)designerItem);
                    }
                }
            }
        }
Esempio n. 13
0
 private void DealWithSpecialPrintControl(ContentControlBase c, PropertyModel p, TextBox textBox = null)
 {
     if (p.Name == "pX")
     {
         Canvas.SetLeft(c, (double)Convert.ChangeType(p.Value, typeof(double)));
         return;
     }
     if (p.Name == "pY")
     {
         Canvas.SetTop(c, (double)Convert.ChangeType(p.Value, typeof(double)));
         return;
     }
     if (p.PropertyChanged != null)
     {
         PropertyChangedFromTextBoxEventArgs proerty = new PropertyChangedFromTextBoxEventArgs()
         {
             PrintControl = c,
             TextBox      = textBox,
             Property     = p
         };
         p.PropertyChanged(proerty);
     }
 }
Esempio n. 14
0
        /// <summary>
        /// 缩放事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ResizeThumb_DragDelta(object sender, DragDeltaEventArgs e)
        {
            Control designerItem = this.DataContext as Control;

            if (designerItem.RenderTransform != null && designerItem.RenderTransform is RotateTransform)
            {
                //有旋转时禁用移动和缩放
                RotateTransform r = (RotateTransform)designerItem.RenderTransform;
                if (r != null)
                {
                    if (r.Angle != 0)
                    {
                        return;
                    }
                }
            }
            if (designerItem != null)
            {
                double deltaVertical, deltaHorizontal;
                switch (VerticalAlignment)
                {
                case VerticalAlignment.Bottom:
                    deltaVertical        = Math.Min(-e.VerticalChange, designerItem.ActualHeight - designerItem.MinHeight);
                    designerItem.Height -= deltaVertical;
                    if (designerItem.Height > designerItem.MaxHeight)
                    {
                        designerItem.Height = designerItem.MaxHeight;
                    }
                    break;

                case VerticalAlignment.Top:
                    deltaVertical = Math.Min(e.VerticalChange, designerItem.ActualHeight - designerItem.MinHeight);
                    Canvas.SetTop(designerItem, Canvas.GetTop(designerItem) + deltaVertical);
                    designerItem.Height -= deltaVertical;
                    if (designerItem.Height > designerItem.MaxHeight)
                    {
                        designerItem.Height = designerItem.MaxHeight;
                    }
                    break;

                default:
                    break;
                }
                switch (HorizontalAlignment)
                {
                case HorizontalAlignment.Left:
                    deltaHorizontal = Math.Min(e.HorizontalChange, designerItem.ActualWidth - designerItem.MinWidth);
                    Canvas.SetLeft(designerItem, Canvas.GetLeft(designerItem) + deltaHorizontal);
                    designerItem.Width -= deltaHorizontal;
                    if (designerItem.Width > designerItem.MaxWidth)
                    {
                        designerItem.Width = designerItem.MaxWidth;
                    }
                    break;

                case HorizontalAlignment.Right:
                    deltaHorizontal     = Math.Min(-e.HorizontalChange, designerItem.ActualWidth - designerItem.MinWidth);
                    designerItem.Width -= deltaHorizontal;
                    if (designerItem.Width > designerItem.MaxWidth)
                    {
                        designerItem.Width = designerItem.MaxWidth;
                    }
                    break;

                default:
                    break;
                }
                if (designerItem is ContentControlBase)
                {
                    ContentControlBase temp = designerItem as ContentControlBase;
                    PropertyModel      pX   = GetPropertyItemByName(temp.Propertys, "pHeight");
                    if (pX != null)
                    {
                        pX.Value = Math.Floor(designerItem.Height);
                    }
                    PropertyModel pY = GetPropertyItemByName(temp.Propertys, "pWidth");
                    if (pY != null)
                    {
                        pY.Value = Math.Floor(designerItem.Width);
                    }

                    double        y  = Math.Floor(Canvas.GetTop(temp));
                    double        x  = Math.Floor(Canvas.GetLeft(temp));
                    PropertyModel px = GetPropertyItemByName(temp.Propertys, "pX");
                    if (px != null)
                    {
                        px.Value = x;
                    }
                    PropertyModel py = GetPropertyItemByName(temp.Propertys, "pY");
                    if (py != null)
                    {
                        py.Value = y;
                    }
                }
                if (designerItem is ContentControlBase)
                {
                    DealWithSpecialPrintControl((ContentControlBase)designerItem);
                }
            }
            e.Handled = true;
        }
Esempio n. 15
0
        /// <summary>
        /// 打印工具栏 控件左键Down
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void printTool_OnMouseLeftButtonDownEvent(object sender, MouseButtonEventArgs e)
        {
            ContentControlBase p = sender as ContentControlBase;

            printCanvas.UpdatePrintControlFromTool(p);
        }
Esempio n. 16
0
        private void CreatePropertyWind(ContentControlBase c)
        {
            gdAttribute.ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = GridLength.Auto
            });
            gdAttribute.ColumnDefinitions.Add(new ColumnDefinition()
            {
            });
            int             index          = 0;
            TextBox         tbTextBox      = null;
            CheckBox        cbCheckBox     = null;
            TextBlock       tbTextBlock    = null;
            ComboBox        cbComboBox     = null;
            DirOrFileSelect drOrFileSelect = null;

            gdAttribute.RowDefinitions.Add(new RowDefinition()
            {
                Height = GridLength.Auto
            });
            PrintItemPropety p = new PrintItemPropety()
            {
                Margin = new Thickness(5, 5, 5, 5)
            };

            p.CurrentPrintControl = c;
            gdAttribute.Children.Add(p);
            Grid.SetRow(p, index);
            Grid.SetColumn(p, 0);
            Grid.SetColumnSpan(p, 2);
            index++;
            gdAttribute.RowDefinitions.Add(new RowDefinition()
            {
                Height = GridLength.Auto
            });
            Rectangle line = new Rectangle()
            {
                Margin = new Thickness(5, 5, 5, 5), Fill = new SolidColorBrush(Colors.RosyBrown), Height = 2
            };

            gdAttribute.Children.Add(line);
            Grid.SetRow(line, index);
            Grid.SetColumn(line, 0);
            Grid.SetColumnSpan(line, 2);
            index++;
            foreach (PropertyModel item in c.Propertys)
            {
                if (!item.IsDisplayInPropertyControl)
                {
                    continue;
                }
                gdAttribute.RowDefinitions.Add(new RowDefinition()
                {
                    Height = GridLength.Auto
                });
                tbTextBlock = new TextBlock()
                {
                    VerticalAlignment = VerticalAlignment.Center, Text = item.Caption, Margin = new Thickness(5), FontWeight = FontWeights.Bold
                };
                switch (item.PropertyType)
                {
                case PropertyType.String:
                {
                    tbTextBox = new TextBox()
                    {
                        DataContext = c, VerticalAlignment = VerticalAlignment.Center, Text = item.Value != null?item.Value.ToString() : string.Empty, Tag = item, Margin = new Thickness(5)
                    };
                    InputMethod.SetIsInputMethodEnabled(tbTextBox, item.SupportChinese);
                    tbTextBox.LostFocus += new RoutedEventHandler(tbTextBox_LostFocus);
                    tbTextBox.KeyDown   += new KeyEventHandler(tbTextBox_KeyDown);
                    gdAttribute.Children.Add(tbTextBox);
                    Grid.SetRow(tbTextBox, index);
                    Grid.SetColumn(tbTextBox, 1);
                    break;
                }

                case PropertyType.Int:
                {
                    tbTextBox = new TextBox()
                    {
                        DataContext = c, VerticalAlignment = VerticalAlignment.Center, Text = item.Value != null?item.Value.ToString() : string.Empty, Tag = item, Margin = new Thickness(5)
                    };
                    InputMethod.SetIsInputMethodEnabled(tbTextBox, item.SupportChinese);
                    tbTextBox.LostFocus += new RoutedEventHandler(tbTextBox_LostFocus);
                    tbTextBox.KeyDown   += new KeyEventHandler(tbTextBox_KeyDown);
                    gdAttribute.Children.Add(tbTextBox);
                    Grid.SetRow(tbTextBox, index);
                    Grid.SetColumn(tbTextBox, 1);
                    break;
                }

                case PropertyType.Double:
                {
                    tbTextBox = new TextBox()
                    {
                        DataContext = c, VerticalAlignment = VerticalAlignment.Center, Text = item.Value != null?item.Value.ToString() : string.Empty, Tag = item, Margin = new Thickness(5)
                    };
                    InputMethod.SetIsInputMethodEnabled(tbTextBox, item.SupportChinese);
                    tbTextBox.LostFocus += new RoutedEventHandler(tbTextBox_LostFocus);
                    tbTextBox.KeyDown   += new KeyEventHandler(tbTextBox_KeyDown);
                    gdAttribute.Children.Add(tbTextBox);
                    Grid.SetRow(tbTextBox, index);
                    Grid.SetColumn(tbTextBox, 1);
                    break;
                }

                case PropertyType.CheckBox:
                {
                    cbCheckBox = new CheckBox()
                    {
                        DataContext = c, VerticalAlignment = VerticalAlignment.Center, VerticalContentAlignment = VerticalAlignment.Center, IsChecked = item.Value != null ? ((int)Convert.ChangeType(item.Value, typeof(int)) == 0 ? false : true) : false, Tag = item, Margin = new Thickness(5)
                    };
                    cbCheckBox.Checked   += new RoutedEventHandler(ckCheckBox_Checked);
                    cbCheckBox.Unchecked += new RoutedEventHandler(ckCheckBox_Unchecked);
                    gdAttribute.Children.Add(cbCheckBox);
                    Grid.SetRow(cbCheckBox, index);
                    Grid.SetColumn(cbCheckBox, 1);
                    break;
                }

                case PropertyType.Combobox:
                {
                    cbComboBox = new ComboBox()
                    {
                        DataContext = c, VerticalAlignment = VerticalAlignment.Center, DisplayMemberPath = "Caption", Tag = item, Margin = new Thickness(5)
                    };
                    cbComboBox.ItemsSource = item.ComboBoxData;
                    if (item.ComboBoxData != null && item.Value != null)
                    {
                        foreach (KeyCaption k in item.ComboBoxData)
                        {
                            if (item.ComboBoxValueType == 0)
                            {
                                if (k.Caption == (string)Convert.ChangeType(item.Value, typeof(string)))
                                {
                                    cbComboBox.SelectedItem = k;
                                    break;
                                }
                            }
                            else if (item.ComboBoxValueType == 1)
                            {
                                try
                                {
                                    if (k.ID == (int)Convert.ChangeType(item.Value, typeof(int)))
                                    {
                                        cbComboBox.SelectedItem = k;
                                        break;
                                    }
                                }
                                catch
                                {
                                    break;
                                }
                            }
                        }
                    }
                    cbComboBox.SelectionChanged += new SelectionChangedEventHandler(cbComboBox_SelectionChanged);
                    gdAttribute.Children.Add(cbComboBox);
                    Grid.SetRow(cbComboBox, index);
                    Grid.SetColumn(cbComboBox, 1);
                    break;
                }

                case PropertyType.Picture:
                {
                    drOrFileSelect = new DirOrFileSelect()
                    {
                        Tag = item, DialogValue = item.Value != null?item.Value.ToString() : string.Empty, VerticalAlignment = VerticalAlignment.Center, DialogType = 1, Filter = "PCX(*.pcx)|*.pcx|BMP(*.bmp)|*.bmp|JPG(*.jpg)|*.jpg|PNG(*.png)|*.png"
                    };
                    drOrFileSelect.OnSelectedChanged += new EventHandler <PictureSelectedEventArgs>(drOrFileSelect_OnSelectedChanged);
                    gdAttribute.Children.Add(drOrFileSelect);
                    Grid.SetRow(drOrFileSelect, index);
                    Grid.SetColumn(drOrFileSelect, 1);
                    break;
                }
                }
                gdAttribute.Children.Add(tbTextBlock);
                Grid.SetRow(tbTextBlock, index);
                Grid.SetColumn(tbTextBlock, 0);
                index++;
            }
        }
Esempio n. 17
0
 /// <summary>
 /// 工具栏选择了打印控件
 /// </summary>
 /// <param name="printControlFromTool"></param>
 public void UpdatePrintControlFromTool(ContentControlBase printControlFromTool)
 {
     PrintControlFromTool = printControlFromTool;
 }
Esempio n. 18
0
 private void UserControl_MouseLeave(object sender, MouseEventArgs e)
 {
     IsMouseEnter         = false;
     PrintControlFromTool = null;
     this.Cursor          = null;
 }
Esempio n. 19
0
 /// <summary>
 /// 属性更改
 /// </summary>
 /// <param name="printControlFromTool"></param>
 public void UpdatePrintControlFromProperty(ContentControlBase printControlFromTool)
 {
     //TODO
 }