获取自定义组件的宽度和高度

在获取wpf自定义组件的宽度和高度的时候,如果直接在InitializeComponent();后面用this.Width,和this.ActualWidth会得到Nan和0,因为组件还没有被计算大小。

要获得组件的宽度和高度可以添加Loaded事件的响应函数,在事件函数里面在用this.Width就可以得到组件的宽度。

public lineNet()
{
    InitializeComponent();


    Loaded += delegate
    {
        Line line11 = new Line();
        Line line12 = new Line();
        Line line21 = new Line();
        Line line22 = new Line();
        //定义参考线颜色宽度
        line11.StrokeThickness = 2;
        line11.Stroke = Brushes.Blue;
        line12.StrokeThickness = 2;
        line12.Stroke = Brushes.Blue;
        line21.StrokeThickness = 2;
        line21.Stroke = Brushes.Blue;
        line22.StrokeThickness = 2;
        line22.Stroke = Brushes.Blue;

        //定义参考线起止坐标
        line11.X1 = 0;
        line11.Y1 = 0;
        line11.X2 = this.width;
        line11.Y2 = 0;

        line12.X1 = 0;
        line12.Y1 = this.height;
        line12.X2 = this.width;
        line12.Y2 = this.height;

        line21.X1 = 0;
        line21.Y1 = 0;
        line21.X2 = 0;
        line21.Y2 = this.height;

        line22.X1 = this.width;
        line22.Y1 = 0;
        line22.X2 = this.width;
        line22.Y2 = this.height;

        MainCanvas.Children.Add(line11);
        MainCanvas.Children.Add(line12);
        MainCanvas.Children.Add(line21);
        MainCanvas.Children.Add(line22);
    };
           
}
原文地址:https://www.cnblogs.com/wangjixianyun/p/2814246.html