2
我有一個Grid
的UserControl
中有兩個邊框。第一個邊框位於第一行,第二個邊框位於第二個位置。邊界的ActualHeight/ActualWidth與動態綁定時的預期不符
<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>
我動態地將值綁定到行定義,使邊框高度也適合行高。
當我從ViewModel創建此UserControl
的對象並在其後面的代碼中調用一個方法時,我沒有得到邊框的原始高度(我期望的是我給出的值),它顯示了網格的一半長度兩邊的高度。一段時間後,邊界大小改變爲我所期望的。
我想從一開始就檢索正確的值。我能做些什麼來實現這種行爲?
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
事件後得到確切的實際寬度&高度。
你什麼時候執行代碼?當您執行代碼時可能UserControl不完全呈現。如果您將代碼添加到您的問題中,這將會很有幫助。 – MatthiasG
@MatthiasG嗨,我用後面的代碼更新了我的問題。讓我知道你是否找到有用的答案 – asitis