如何避免得到负值?

时间:2011-05-10 16:25:35

标签: c# silverlight

我需要能够避免得到负值。当窗口浏览器调整大小但是没有达到负值以避免出错时,我需要datagrid缩小。那可能吗?提前谢谢。

这是我的代码:

public SilverlightResizeTest() 
    { 
        InitializeComponent(); 
        // Set the height for the DataGrid when the browser window changes size  
        App.Current.Host.Content.Resized += new System.EventHandler(Content_Resized); 

        // Set the initial height for the DataGrid 
        double x = App.Current.Host.Content.ActualHeight; 
        if (x != 0) 
        { 
            DataGrid.Height = (x - 485.0); 
        } 
    } 

    void Content_Resized(object sender, System.EventArgs e) 
    { 
        // Set the height for the DataGrid when the browser window changes size 
        double x = App.Current.Host.Content.ActualHeight; 
        if (x != 0) 
        { 
            DataGrid.Height = (x - 485.0); 
        } 
    }

5 个答案:

答案 0 :(得分:3)

DataGrid.Height = Math.Max(0.0, x - 485.0);

答案 1 :(得分:3)

这个

DataGrid.Height = Math.Max(0, x - 485.0);

或者

DataGrid.Height = (x - 485.0);
if(DataGrid.Height < 0) DataGrid.Height = 0;

或......

真的,有很多方法可以做到这一点。

答案 2 :(得分:1)

您可以尝试使用onn Content_Resized方法

DataGrid.Height = x > (485.0) ? (x - 485.0) : DataGrid.Height;

这样,如果新的高度为0,它会保持之前的高度,也可以定义数据网格的最小高度:并使用此行代替:

DataGrid.Height = x > (485.0 + minHeight) ? (x - 485.0) : DataGrid.Height;

答案 3 :(得分:1)

为什么不检查它? :

 DataGrid.Height = Math.Max(0 , x - 485.0); 

答案 4 :(得分:1)

DataGrid.Height = Math.Max((x - 485.0), 0.0);