如何获得动态创建标签的实际宽度?

时间:2016-06-30 22:02:05

标签: c# wpf xaml

我有一个包含任务列表的窗口,我希望在处理时将微调器移动到任务名称的右侧。

但是,我无法得到" true"标签的宽度 - 无论内容如何,​​它始终为每个标签返回相同的值(503)。

我试图在内容渲染上移动微调器,如下所示:

private async void Window_ContentRendered(object sender, EventArgs e)
{
    string[] labels = { "I am sailing", "I am going for a walk", "I am learning to juggle", "I have gone fishing", "I am doing something else" };
    for (int i = 0; i < labels.Length; i++)
    {
        string name = labels[i].Replace(" ", "");
        Label lbl = MyGrid.Children.OfType<Label>()
            .First(j => j.Name == name);

        await Task.Run(() => DummyTask());
        var position = lbl.PointToScreen(new Point(0, 0));
        Spinner.Margin = new Thickness(lbl.ActualWidth + 30, position.Y, 0, 0);
    }
}

但是,因为值始终返回503,所以微调器移出窗口的可见区域。

如何获得&#34;真实&#34;标签的宽度(即内容的宽度)。

0 个答案:

没有答案