2017-06-22 78 views
0

時,當射擊我有rowdefinitionsWPF網格的大小改變事件僅增加而不是減少

RowDefinition rd0 = new RowDefinition(); 
rd0.Height = new GridLength(1, GridUnitType.Auto); 
RowDefinition rd1 = new RowDefinition(); 
rd1.Height = new GridLength(1, GridUnitType.Star); 
RowDefinition rd2 = new RowDefinition(); 
rd2.Height = new GridLength(1, GridUnitType.Auto); 
grdMain.RowDefinitions.Add(rd0); 
grdMain.GetGrdPlugins().RowDefinitions.Add(rd1); 
grdMain.GetGrdPlugins().RowDefinitions.Add(rd2); 

網格現在第一行中我在第三堆棧添加一個文本塊

var tbxTitle = new TextBlock(){}; 
Grid.SetRow(tbxTitle, 0); 
grdMain.Children.Add(tbxTitle); 

按鈕面板

StackPanel spButtons = new StackPanel() { Orientation = Orientation.Horizontal, HorizontalAlignment = HorizontalAlignment.Center, }; 
grdMain.Children.Add(spButtons); 
Grid.SetRow(spButtons, 2); 
... 

第二個堆棧面板。

現在我想一個事件被稱爲所有倍大小的網格變化:

var spMatrix_Volatile = new StackPanel() { HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Stretch, Background = Brushes.RosyBrown}; 
spMatrix_Volatile.SizeChanged += (sender, args) => 
{ 
    Console.Beep(); 
    double dHeight = spMatrix_Volatile.ActualHeight; 
    CreateCellMatrix(out strResult, ref spMatrix_Volatile, false, dHeight); 
}; 

Grid.SetRow(spMatrix_Volatile, 1); 
grdMain.Children.Add(spMatrix_Volatile); 

現在奇怪的事情是,大小改變事件被稱爲所有的時間網格的高度增加但從未減少。

謝謝

回答

1

這發生在我身上以及使用您的代碼。 因此,我已經把堆疊面板放在一個網格中,而這一切都不再發生。 這就是事件在增加和減少時都被觸發。