Example #1
0
        private void ThumbMove_DragDelta(object sender, DragDeltaEventArgs e)
        {
            Control designerItem = this.DataContext as Control;
            Canvas  ca           = (Canvas)VisualTreeHelper.GetParent(designerItem);//寻找父控件

            //卢平义 2014-7-4 15:57:35 改变模块大小的时候,设置框内数字随着改动
            //Grid grid = (Grid)VisualTreeHelper.GetParent(ca);
            //TextBox h1 = (TextBox)((WrapPanel)grid.Children[1]).FindName("h1");//找到需要修改的控件                                //WrapPanel wp = (WrapPanel)grid.Children[1];//找到Grid的第二个子控件
            //h1.Text = designerItem.Height.ToString();
            //TextBox w1 = (TextBox)((WrapPanel)grid.Children[1]).FindName("w1");
            //w1.Text = designerItem.Width.ToString();
            //TextBox x1 = (TextBox)((WrapPanel)grid.Children[1]).FindName("x1");
            //x1.Text = Canvas.GetLeft(designerItem).ToString();
            //TextBox y1 = (TextBox)((WrapPanel)grid.Children[1]).FindName("y1");
            //y1.Text = Canvas.GetTop(designerItem).ToString();
            //ComboBox listbox = (ComboBox)((WrapPanel)grid.Children[1]).FindName("listBox");
            //listbox.Text = designerItem.Name;

            RemoteWin rw = new RemoteWin(designerItem.Width, designerItem.Height, Canvas.GetLeft(designerItem), Canvas.GetTop(designerItem), Canvas.GetZIndex(designerItem), designerItem.Name, Convert.ToInt32(designerItem.FontSize), "");

            rw.SendParamsToRemote();
            if (rw.Name == PublicParams.dynamicVideoWinName)//如果加载的是动态视频的窗口,要计算视频上墙的位置
            {
                PadRemoteParams.RecalculateVideosPosition((int)rw.Width, (int)rw.Height, (int)rw.X, (int)rw.Y);
            }

            if (designerItem != null)
            {
                double left = Canvas.GetLeft(designerItem) + e.HorizontalChange;
                double top  = Canvas.GetTop(designerItem) + e.VerticalChange;
                if (left <= 0)
                {
                    left = 0;
                }
                if (top <= 0)
                {
                    top = 0;
                }
                //Canvas.GetTop(designerItem.Parent);
                //if top>=(canv
                //Control ca = (Control)designerItem.Parent;
                //double a= ca.Width;
                //Canvas ca= (Canvas) VisualTreeHelper.GetParent(designerItem);
                //double a = ca.Width;
                if (left >= ca.Width - designerItem.Width)
                {
                    left = ca.Width - designerItem.Width;
                }
                if (top >= ca.Height - designerItem.Height)
                {
                    top = ca.Height - designerItem.Height;
                }

                Canvas.SetLeft(designerItem, left);
                Canvas.SetTop(designerItem, top);
            }
        }
        private void ThumbResize_DragDelta(object sender, DragDeltaEventArgs e)
        {
            Control designerItem = this.DataContext as Control;
            Canvas  ca           = (Canvas)VisualTreeHelper.GetParent(designerItem);//寻找父控件
            //Canvas.SetZIndex(designerItem, 0);
            Rectangle rt = (Rectangle)((ContentControl)designerItem).Content;

            rt.Width  = designerItem.Width;
            rt.Height = designerItem.Height;//保证背景图片和框的大小相同
            //TextBlock tb = (TextBlock)((StackPanel)((VisualBrush)rt.Fill).Visual).Children[0];
            //tb.Height = 30; tb.Width = designerItem.Width;

            //卢平义 2014-7-4 15:57:35 改变模块大小的时候,设置框内数字随着改动
            //Grid grid = (Grid)VisualTreeHelper.GetParent(ca);
            //TextBox h1 = (TextBox)((WrapPanel)grid.Children[1]).FindName("h1");//找到需要修改的控件                                //WrapPanel wp = (WrapPanel)grid.Children[1];//找到Grid的第二个子控件
            //h1.Text = designerItem.Height.ToString();
            //TextBox w1 = (TextBox)((WrapPanel)grid.Children[1]).FindName("w1");
            //w1.Text = designerItem.Width.ToString();
            //TextBox x1 = (TextBox)((WrapPanel)grid.Children[1]).FindName("x1");
            //x1.Text = Canvas.GetLeft(designerItem).ToString();
            //TextBox y1 = (TextBox)((WrapPanel)grid.Children[1]).FindName("y1");
            //y1.Text = Canvas.GetTop(designerItem).ToString();
            //ComboBox listbox = (ComboBox)((WrapPanel)grid.Children[1]).FindName("listBox");
            //listbox.Text = designerItem.Name;

            //string savedButton = System.Windows.Markup.XamlWriter.Save(this.buttonB);
            //textBox1.Text = savedButton;
            //MessageBox.Show(System.Windows.Markup.XamlWriter.Save(designerItem));

            RemoteWin rw = new RemoteWin(designerItem.Width, designerItem.Height, Canvas.GetLeft(designerItem), Canvas.GetTop(designerItem), Canvas.GetZIndex(designerItem), designerItem.Name, Convert.ToInt32(designerItem.FontSize), "");

            rw.SendParamsToRemote();
            if (rw.Name == PublicParams.dynamicVideoWinName)//如果加载的是动态视频的窗口,要计算视频上墙的位置
            {
                PadRemoteParams.RecalculateVideosPosition((int)rw.Width, (int)rw.Height, (int)rw.X, (int)rw.Y);
            }

            if (designerItem != null)
            {
                double deltaVertical, deltaHorizontal;

                switch (VerticalAlignment)
                {
                case VerticalAlignment.Bottom:
                    deltaVertical = Math.Min(-e.VerticalChange, designerItem.ActualHeight - designerItem.MinHeight);
                    //designerItem.Height -= deltaVertical;
                    if (Canvas.GetTop(designerItem) + designerItem.Height + e.VerticalChange >= ca.Height)    //防止越界
                    {
                        designerItem.Height = ca.Height - Canvas.GetTop(designerItem);
                    }
                    else
                    {
                        designerItem.Height -= deltaVertical;
                    }
                    break;

                case VerticalAlignment.Top:
                    deltaVertical = Math.Min(e.VerticalChange, designerItem.ActualHeight - designerItem.MinHeight);
                    double nTop = Canvas.GetTop(designerItem) + deltaVertical;
                    if (nTop >= 0)    //防止越界
                    {
                        Canvas.SetTop(designerItem, nTop);
                        designerItem.Height -= deltaVertical;
                    }
                    break;

                default:
                    break;
                }

                switch (HorizontalAlignment)
                {
                case HorizontalAlignment.Left:
                    deltaHorizontal = Math.Min(e.HorizontalChange, designerItem.ActualWidth - designerItem.MinWidth);
                    if (Canvas.GetLeft(designerItem) + deltaHorizontal >= 0)    //调整模块大小的时候,防止模块左边缘出界
                    {
                        Canvas.SetLeft(designerItem, Canvas.GetLeft(designerItem) + deltaHorizontal);
                        designerItem.Width -= deltaHorizontal;
                    }
                    break;

                case HorizontalAlignment.Right:
                    deltaHorizontal = Math.Min(-e.HorizontalChange, designerItem.ActualWidth - designerItem.MinWidth);
                    //designerItem.Width -= deltaHorizontal;
                    if (Canvas.GetLeft(designerItem) + designerItem.ActualWidth + e.HorizontalChange >= ca.Width)    //调整模块大小的时候,防止模块下边缘出界
                    {
                        designerItem.Width = ca.Width - Canvas.GetLeft(designerItem);
                    }
                    else
                    {
                        designerItem.Width -= deltaHorizontal;
                    }
                    break;

                default:
                    break;
                }
            }

            e.Handled = true;
        }
Example #3
0
        /// <summary>
        /// 业务相关,根据旧模块名,模块并替换为新模块名
        /// </summary>
        /// <param name="xmlFileName"></param>
        /// <param name="xPath"></param>
        /// <param name="oldName"></param>
        /// <param name="rw"></param>
        public static void UpdateModularByName(string xmlFileName, string xPath, string oldName, RemoteWin rw)
        {
            XmlDocument xmlDoc = new XmlDocument();

            try
            {
                xmlDoc.Load(xmlFileName);
                XmlNode xmlNode = xmlDoc.SelectSingleNode(xPath);
                if (xmlNode != null)
                {
                    foreach (XmlElement xe in xmlNode)
                    {
                        if (xe["Name"].InnerText == rw.Name)//LPY 2016-3-18 暂时取消模块名称替换,只修改详细参数。。如有需要,以后再说
                        {
                            XmlElement modular = xmlDoc.CreateElement("Modular");

                            XmlElement name     = xmlDoc.CreateElement("Name"); name.InnerText = rw.Name; modular.AppendChild(name);
                            XmlElement width    = xmlDoc.CreateElement("Width"); width.InnerText = rw.Width.ToString(); modular.AppendChild(width);
                            XmlElement height   = xmlDoc.CreateElement("Height"); height.InnerText = rw.Height.ToString(); modular.AppendChild(height);
                            XmlElement x        = xmlDoc.CreateElement("X"); x.InnerText = rw.X.ToString(); modular.AppendChild(x);
                            XmlElement y        = xmlDoc.CreateElement("Y"); y.InnerText = rw.Y.ToString(); modular.AppendChild(y);
                            XmlElement zindex   = xmlDoc.CreateElement("Zindex"); zindex.InnerText = rw.Zindex.ToString(); modular.AppendChild(zindex);
                            XmlElement fontsize = xmlDoc.CreateElement("FontSize"); fontsize.InnerText = rw.FontSize.ToString(); modular.AppendChild(fontsize);
                            XmlElement img      = xmlDoc.CreateElement("Img"); img.InnerText = xe["Img"].InnerText; modular.AppendChild(img);

                            xmlNode.ReplaceChild(modular, xe);
                        }
                    }
                    xmlDoc.Save(xmlFileName);
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex.Message);
                return;
            }
        }