DrL*_*zer 4 c# wpf user-interface
棘手的解释这一点.我有一个自定义的属性网格.左侧列具有属性标签.有时取决于属性,我想要一个小的elipsis按钮向用户显示他们可以启动对话框.我希望按钮垂直内嵌,使UI看起来整洁.标签的宽度取决于属性"onEnterPressed"或"upLink"的名称.
如果我单独添加elipses按钮并使用这样的边距...
elipsisButton.Margin = new Thickness(135, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
左边的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);
Run Code Online (Sandbox Code Playgroud)
然而,看起来,标签在屏幕上呈现之前不会获得宽度,因此我无法找到添加到我的elipsis按钮的尺寸边距.有任何想法吗?
jap*_*apf 19
您可以调用Measure()方法以询问控件需要显示的大小:
var l = new Label() { Content = "Hello" };
l.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
Size s = l.DesiredSize;
Run Code Online (Sandbox Code Playgroud)
然后使用DesiredSize属性的值.