我在 aGrid
中有两个边框UserControl
。第一个边框在第一行,第二个边框在第二行。
<UserControl>
<Grid Height="100">
<Grid.RowDefinitions>
<RowDefinition Height="{Binding RowOneLength}" />
<RowDefinition Height="{Binding RowTwoLength}" />
</Grid.RowDefinitions>
<Border x:Name="Border1" Grid.Row="0">
</Border>
<Border x:Name="Border2" Grid.Row="1">
</Border>
</Grid>
</UserControl>
我将值动态绑定到行定义,以便边框高度也适合行高。
当我UserControl
从 ViewModel 创建一个对象并在其后面的代码中调用一个方法时,我没有得到边框的原始高度(我期望的是我给出的值)并且它显示两个边框的网格高度的一半长度。一段时间后,边框大小更改为我所期望的。
我想从一开始就检索正确的值。我能做些什么来实现这种行为?
public void SetImagesForNewPattern(int val1, int val2)
{
this.Loaded += (sender, e) =>
{
var len1 = Border1.ActualHeight+Border1.ActualWidth;
var len2 = Border2.ActualHeight+Border2.ActualWidth;
}
}
这是我的代码背后的方法。这个方法是从我的ViewModel
. SizeChanged
只有在边框事件之后,我才能获得确切的实际宽度和高度。