棘手的人解释这一点。我有一个自定义的属性网格。左侧列具有属性标签。有时取决于属性,我想要一个小的elipsis按钮向用户显示他们可以启动对话框。我希望按钮垂直内嵌,使UI看起来整洁。标签的宽度取决于“onEnterPressed”或“upLink”属性的名称。
如果我单独添加elipses按钮并使用这样的边距......
elipsisButton.Margin = new Thickness(135, 0, 0, 0);
左边的135正是我要放置按钮的位置。
我希望能够做类似
的事情Label newLabel = new System.Windows.Controls.Label();
newLabel.Content = anInfo;
aPanel.Children.Add(newLabel);
elipsisButton.Margin = new Thickness(135 - newLabel.Width, 0, 0, 0);
然而,看起来,标签在屏幕上呈现之前不会获得宽度,因此我无法找出要添加到我的elipsis按钮的尺寸边距。有什么想法吗?
答案 0 :(得分:18)
您可以调用Measure()方法,以询问控件需要显示的大小:
var l = new Label() { Content = "Hello" };
l.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
Size s = l.DesiredSize;
然后使用DesiredSize属性的值。