簡體   English   中英

更新用戶控件布局時,將壓縮固定網格中的動態行

[英]When a usercontrol layout gets updated, dynamic rows in fixed grid are squished

我在xaml中有一個網格:

我動態創建許多行:

        for (int i = 1; i <= numHorizLines - 1; i++)
        {
            RowDefinition r = new RowDefinition();
            r.Height = new GridLength(Convert.ToDouble(size), GridUnitType.Star);
            gVertNums.RowDefinitions.Add(r);
        }

當usercontrol的layout_updated事件觸發時,我執行循環以根據控件的高度重新創建行數(清除gVertNums網格中的所有內容之后)。 然后將文本塊添加到網格行中,並在其中添加數字(為簡單起見,省略了代碼)。

當第一次打開主窗口時,這很好地工作。 但是,當再次觸發layout_updated事件時,gVertNums將顯示正確的行數,但將被壓縮。

網格高度似乎正在發生變化,從而導致行被壓縮。 即使我將gVertNums.height重置為新布局的高度,行還是被弄臟了...

這是打開的主窗口的屏幕截圖:

在主窗口打開

這是調整用戶控件大小時的屏幕截圖:

調整用戶控件的大小后

在此示例中,更改了網格寬度,但未更改高度,並且行仍被擠壓在一起。 間距為“大小”(25像素)。

任何想法為什么會這樣?

您目前沒有(顯示)清除RowDefinitions代碼。 因此,在再次添加它們之后,您現在的行數可能會比預期的多一倍。

嘗試這個

gVertNums.RowDefinitions.Clear();
for (int i = 1; i <= numHorizLines - 1; i++)
    {
        RowDefinition r = new RowDefinition();
        r.Height = new GridLength(Convert.ToDouble(size), GridUnitType.Star);
        gVertNums.RowDefinitions.Add(r);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM