Tag: actualwidth

在动态填充网格上绑定问题ActualWidth

请考虑以下简单代码: XAML: MouseDoubleClick事件: private void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e) { grid.RowDefinitions.Add(new RowDefinition()); for (int i = 0; i < grid.ColumnDefinitions.Count; i++) { Random r = new Random(); Label l = new Label { Content = r.Next(10, 1000000000).ToString() }; grid.Children.Add(l); Grid.SetRow(l, grid.RowDefinitions.Count – 1); Grid.SetColumn(l, i); } } 我的标签通过绑定包含第二列的ActualWidth属性。 在Visual Studio中,我看到我的标签包含值316,因此绑定有效。 双击标签会触发其事件并向网格添加一个额外的行,所有行都具有随机长度。 我希望在我的标签上看到一个新值,但是(在运行时计算)0不会改变! 我在这里想念的是什么?

如何绑定只读WPF控件属性(例如ActualWidth),以便在视图模型中访问其值?

我想将控件的只读属性绑定到我的视图模型,以便该值在视图模型中可用。 这样做的最佳方式是什么? 例如,我想将ActualWidth绑定到视图模型中的属性。 宽度值由WPF使用其布局逻辑生成,因此我无法在视图模型中生成此值并将其推送到控件属性,这通常是这种情况。 相反,我需要让WPF生成值并将其推送到视图模型。 我只使用Mode=OneWayToSource ,但这不适用于只读属性: … child controls … 我现在这样做的方法是处理边框的SizeChanged ,然后代码将值插入到视图模型中,但这感觉不太对。 有人已经解决了这个问题吗? 更新:我的问题实际上是这个问题的重复:将只读GUI属性推回到ViewModel

如果我从代码创建文本块,如何计算加载时的textbock高度和宽度?

TextBlock tbl= new TextBlock(); tbl.text=”Kishore”; double x=tbl.ActualHeight; double y=tbl.ActualWidth; 如果我从Metro中加载的事件执行代码 – winRT将为两者返回0。 如何在Loaded或SizeChanged事件中获取ActualWidth ?