Silverlight 布局面板加控件方法 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    Silverlight 布局面板加控件方法

    添加文字的方法:

TextBlock txt = new TextBlock();                    txt.Text = tmc;                    txt.FontSize = 12;                    txt.Foreground = t_brush;                    txt.FlowDirection = FlowDirection.LeftToRight;                    //                      double tt_angle = this.GetAngle(eb, ee);                    double t_angle = tt_angle;                    t_angle = t_angle * 180.0 / this.PI;                    if (t_angle >= 360)                    {                        t_angle -= 360;                    }                    t_angle = 360 - t_angle;  //修正用于顺时针rotate方向                    //RotateTransform. //SkewTransform. RotateTransform. rt = new RotateTransform();                    rt.Angle = t_angle;  //顺时针rotate方向                    rt.CenterX = 0;                     rt.CenterY = 0;                     txt.RenderTransform. = rt;                    txt.RenderTransformOrigin = new Point(t_atP.X, t_atP.Y);                    //                    txt.SetValue(Canvas.LeftProperty, t_atP.X);                    txt.SetValue(Canvas.TopProperty, t_atP.Y);                    //                    this.cRoot.Children.Add(txt);                    //----

    添加直线的方法:

Brush t_brush=new SolidColorBrush(this.LineColor);            //            double p_sx = this.wfView.MapToScreen_X((double)rt_t.SX);            double p_sy = this.wfView.MapToScreen_Y((double)rt_t.SY);            //            double p_ex = this.wfView.MapToScreen_X((double)rt_t.EX);            double p_ey = this.wfView.MapToScreen_Y((double)rt_t.EY);            //            PointD eb = new PointD();            eb.X = (double)rt_t.SX;            eb.Y = (double)rt_t.SY;            PointD ee = new PointD();            ee.X = (double)rt_t.EX;            ee.Y = (double)rt_t.EY;            //画线(用面对象只添加两个点来完成)            Polygon t_line = new Polygon();              //                        t_line.Points.Add(new Point(p_sx, p_sy));            t_line.Points.Add(new Point(p_ex, p_ey));            //            t_line.Points.Add(new Point(p_sx, p_sy));            //            //t_line.StrokeThickness = 2;            //t_line.Opacity = 0.5;            //t_line.Width = 2;            t_line.Stroke = t_brush;            t_line.Fill = t_brush;            //            this.cRoot.Children.Add(t_line);

    添加图片和矩形框的方法:

BitmapImage img = new BitmapImage();                    img.CreateOptions = BitmapCreateOptions.None;                    string path = "/AppSilverlight;component/WorkFlowNodeImageDir/png/" + t;                    Stream s = Application.GetResourceStream(new Uri(path, UriKind.Relative)).Stream;                    img.SetSource(s);                    //                    Image ui_img = new Image();                    ui_img.Source = img;                    //计算节点左上角坐标                    double top_x = (int)p_x;                    top_x = top_x - img.PixelWidth / 2;                    double top_y = (int)p_y;                    top_y = top_y - img.PixelHeight / 2;                    //                    ui_img.SetValue(Canvas.LeftProperty, top_x);                    ui_img.SetValue(Canvas.TopProperty, top_y);                    this.cRoot.Children.Add(ui_img);                    //                    //画节点外边框                    {                                                Rectangle rect = new Rectangle();                        rect.Stroke = t_Brush;                        rect.Fill = new SolidColorBrush(Colors.Transparent);                        rect.SetValue(Canvas.LeftProperty, top_x);                        rect.SetValue(Canvas.TopProperty, top_y);                        rect.Width = img.PixelWidth;                        rect.Height = img.PixelHeight;                        this.cRoot.Children.Add(rect);                                            }                }                //添加节点名称                {   //画节点名称                    string actmc = rt_act.ACTMC;                    TextBlock txt = new TextBlock();                                       txt.Text = actmc;                    txt.FontSize = 12;                    txt.Foreground = t_Brush;                     char[] longLine = actmc.ToCharArray();                    //修正节点名称显示位置                    double t_txtLen = longLine.Length / 2.0;                    t_txtLen = t_txtLen * txt.FontSize;                    //                    double x = p_x - t_txtLen;                    double y = p_y + 24 + 0;                    txt.SetValue(Canvas.LeftProperty, x);                    txt.SetValue(Canvas.TopProperty, y);                    //                    this.cRoot.Children.Add(txt);

最新文章