UWP-将元素绑定到主窗口大小,并在窗口大小更改时更新值

Cip*_*goe 1 data-binding uwp

我想绑定到当前窗口大小的文本块。在当前的实现中,如果我在应用程序启动后重新调整窗口的大小,则在运行时设置主窗口的大小,但不会在文本块中更新新的大小。

<Grid x:Name="grid" Background="#FFE8E8E8">
   <TextBox x:Name="textBoxSample" Width="300" Height="200" Text="{Binding ActualWidth, ElementName=grid}"></TextBox>
</Grid>
Run Code Online (Sandbox Code Playgroud)

Dec*_*oon 5

您不应该绑定到ActualWidth。的的言论FrameworkElement.ActualWidth文件说:

尽管它有一个ActualWidthProperty支持字段,但是ActualWidth不会引发属性更改通知,应该将其视为常规CLR属性而不是依赖项属性。

出于ElementName绑定的目的,ActualWidth在更改时不会发布更新(由于其异步和运行时计算性质)。不要尝试将ActualWidth用作ElementName绑定的绑定源。如果您有需要基于ActualWidth更新的方案,请使用SizeChanged处理程序。

您将需要其他确定窗口大小的方法,例如通过订阅SizeChanged事件。