如何在WPF中以编程方式向网格添加滚动条?

ig田

我在xaml文件中具有以下网格:

<Grid x:Name="gridPMP" HorizontalAlignment="Left" Height="285" Margin="23,116,0,-330" Grid.Row="1" VerticalAlignment="Top" Width="1238"/>

该网格以程序代码.cs填充:

public void loadPMPTable()
    {
        gridPMP.Children.Clear();
        gridPMP.RowDefinitions.Clear();
        gridPMP.ColumnDefinitions.Clear();

        MetodosAux aux = new MetodosAux();
        String s = problemName.Content.ToString();
        String listaPath = "./DataSaved/" + s + "/ListaDeMateriales.txt";
        String arbolPath = "./DataSaved/" + s + "/ArbolDeMateriales";
        String RIPath = "./DataSaved/" + s + "/RegistroInventarios.txt";

        int cols = NumValue + 1;
        int rows = aux.numeroLineasFichero(listaPath) + 1;

        FileStream fs = new FileStream(listaPath, FileMode.Open, FileAccess.Read);
        System.IO.StreamReader file = new System.IO.StreamReader(fs);

        String linea;

        for (int x = 0; x < cols; x++)
        {
            ColumnDefinition CD = new ColumnDefinition();
            if (x==0)
            {
                CD.Width = new System.Windows.GridLength(120);
            }
            else
            {
                CD.Width = new System.Windows.GridLength(30);
            }
            //CD.Width = GridLength.Auto;
            gridPMP.ColumnDefinitions.Add(CD);
        }
        for (int y = 0; y < rows; y++)
        {
            RowDefinition r = new RowDefinition();
            //r.Height = GridLength.Auto;
            r.Height= new System.Windows.GridLength(30);
            gridPMP.RowDefinitions.Add(r);
        }

        for (int x = 0; x < cols; x++)
        {
            for (int y = 0; y < rows; y++)
            {
                if ((y == 0) && (x == 0)) //y=row index, x=column index
                {
                    TextBox t = new TextBox();
                    t.Width = 170;
                    t.IsReadOnly = true;
                    t.Text = "Elemento/Día";
                    t.FontWeight = FontWeights.UltraBold;
                    Grid.SetColumn(t, x);
                    Grid.SetRow(t, y);
                    gridPMP.Children.Add(t);

                }
                else if ((y == 0) && (x >= 1))
                {
                    TextBox t = new TextBox();
                    t.Width = 170;
                    t.IsReadOnly = true;
                    t.Text = x.ToString();
                    t.FontWeight = FontWeights.UltraBold;
                    Grid.SetColumn(t, x);
                    Grid.SetRow(t, y);
                    gridPMP.Children.Add(t);
                }
                else if (x == 0)
                {
                    TextBox t = new TextBox();
                    t.Width = 170;
                    t.IsReadOnly = true;
                    linea = file.ReadLine();
                    t.Text = linea;
                    t.FontWeight = FontWeights.DemiBold;
                    Grid.SetColumn(t, x);
                    Grid.SetRow(t, y);
                    gridPMP.Children.Add(t);
                }
                else
                {
                    TextBox tb = new TextBox();
                    tb.PreviewTextInput += textBoxValidator;
                    tb.Width = 170;
                    tb.Text = "0";
                    Grid.SetColumn(tb, x);
                    Grid.SetRow(tb, y);
                    gridPMP.Children.Add(tb);
                }
            }
        }
        file.Close();
        fs.Close();
    }//end loadPMPTable()

列数和行数根据某些文件的结构而变化。因此,当有多于8行时,网格将不会显示数据,因为没有足够的空间。这就是为什么我要使网格可滚动。如何以编程方式或从xaml文件中执行此操作?我从xaml文件尝试了它,但没有使它起作用。

温格斯

您可以将其放在ScrollViewer

<ScrollViewer>
    <Grid x:Name="gridPMP" HorizontalAlignment="Left" Height="285" Grid.Row="1" VerticalAlignment="Top"/>
</ScrollViewer>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在WPF中以编程方式向网格添加滚动条?

来自分类Dev

如何在WPF C#中向文本框添加滚动条

来自分类Dev

如何以编程方式在单个滚动条中添加多个文本框

来自分类Dev

如何在 RadCartesianChart 中向 Telerik RadLegendControl 添加垂直滚动条?

来自分类Dev

如何在滚动条对话框中添加滚动条?

来自分类Dev

将垂直滚动条添加到WPF网格

来自分类Dev

如何在表格中添加滚动条?

来自分类Dev

如何在div中添加滚动条

来自分类Dev

如何在小部件中添加垂直滚动条?

来自分类Dev

如何在tabcontrol / tabpages中添加垂直滚动条

来自分类Dev

如何在Java ..中的jpanel内添加滚动条?

来自分类Dev

如何在Java的JTextArea类中添加滚动条?

来自分类Dev

如何在 Vaadin 7 表中添加滚动条

来自分类Dev

如何在Qt中将滚动条添加到网格布局?

来自分类Dev

如何在Qt中将滚动条添加到网格布局?

来自分类Dev

如何将滚动条添加到网格

来自分类Dev

以编程方式设置滚动条的宽度

来自分类Dev

以编程方式找出滚动条大小

来自分类Dev

WPF网格不显示滚动条

来自分类Dev

无法在 Tkinter 中向主窗口添加滚动条

来自分类Dev

如何在Kendo网格中自动启用或禁用滚动条?

来自分类Dev

如何在 MVVM 中设置数据网格滚动条位置

来自分类Dev

我如何在WPF中用TextBlock填充屏幕,但如果更大则添加滚动条?

来自分类Dev

如何在滚动滚动条<ul> jquery中添加“最大宽度”

来自分类Dev

向动态ul添加滚动条

来自分类Dev

向动态ul添加滚动条

来自分类Dev

向表格垂直添加滚动条

来自分类Dev

如何在QGraphicsview中滚动超出滚动条范围?

来自分类Dev

如何在WPF中修改DataGrid垂直滚动条的位置?

Related 相关文章

热门标签

归档