2012-03-20 244 views
0

我正在嘗試獲取的Width。我試過:獲取自動寬度元素的寬度

double width = stk_main.ActualWidth; 

這給了零,它不應該是。另外:

double width = stk_main.Width; 

這給NaN的,因爲寬度設置爲auto之前。那麼我怎麼能得到寬度?

+0

'ActualWidth' *應*返回實際寬度。你打這個電話在哪裏?可能是堆棧面板尚未完全呈現。 – ChrisF 2012-03-20 22:31:33

+0

我在按鈕點擊結束時調用它。我看到堆棧面板和寬度,但寬度爲零。當我第二次點擊按鈕時,它會提供價值。 – Shibli 2012-03-20 22:34:36

回答

1

您可以使用sizeChanged,但當您使用的堆棧面板不更改大小時,它不起作用。

private void stk_main_SizeChanged(object sender, SizeChangedEventArgs e) 
{ 
    double yourWidthNow = e.NewSize.Width; 
} 

希望它可以給你一些幫助...

0

您可以附加到的Loaded事件,因爲佈局過程將在此時完成,並且將設置ActualWidth