Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-以编程方式向网格行定义添加新的文本块_C#_Wpf - Fatal编程技术网

C#-以编程方式向网格行定义添加新的文本块

C#-以编程方式向网格行定义添加新的文本块,c#,wpf,C#,Wpf,我正在尝试制作一个应用程序,它读取RSS提要并以WPF形式显示它们。为了分隔帖子,我使用了一个网格,并添加了另外两个行定义(一个用于标题,一个用于主题) 现在我被卡住了。我想在我刚刚定义的行中添加一些文本块,但我不知道如何添加,因为它们没有名称。有人有主意吗 我目前拥有的: //defining Grid Grid post = new Grid(); post.HorizontalAlignment = HorizontalAlignment.L

我正在尝试制作一个应用程序,它读取RSS提要并以WPF形式显示它们。为了分隔帖子,我使用了一个网格,并添加了另外两个行定义(一个用于标题,一个用于主题)

现在我被卡住了。我想在我刚刚定义的行中添加一些文本块,但我不知道如何添加,因为它们没有名称。有人有主意吗

我目前拥有的:

        //defining Grid
        Grid post = new Grid();
        post.HorizontalAlignment = HorizontalAlignment.Left;
        post.VerticalAlignment = VerticalAlignment.Top;
        post.Margin = new Thickness(10);
        post.ShowGridLines = true;
        post.ColumnDefinitions.Add(new ColumnDefinition()
        {
            Width = new GridLength(500)
        });

        //loop trough all RSS feeds
        foreach (SyndicationItem item in feed.Items)
        {
            //add rows for title and Summary
            post.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(50),

            });
            post.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(50)
            });

            //Grid.SetRow(TitleTextblock, 0);
            //Grid.SetRow(SummaryTextblock, 1);

            //fills textblocks
            post.Children.Add(new TextBlock()
            {
                Text = item.Title.Text                  
            });
            post.Children.Add(new TextBlock()
            {
                Text = item.Summary.Text
            });
        }
        //show grid on window
        this.Content = post;
其结果是: 你可以试试

TextBlock textBlock = new TextBlock();
Grid.SetRow(textBlock, 0);
Grid.SetColumn(textBlock, 0);

希望这能帮助您

好吧,正确设置
定义似乎有问题:

//defining Grid
    Grid post = new Grid();
    post.HorizontalAlignment = HorizontalAlignment.Left;
    post.VerticalAlignment = VerticalAlignment.Top;
    post.Margin = new Thickness(10);
    post.ShowGridLines = true;
    post.ColumnDefinitions.Add(new ColumnDefinition()
    {
        Width = new GridLength(500)
    });

    //add local field to keep track of what row you're on
    int rowdeff = 0;

    //loop trough all RSS feeds
    foreach (SyndicationItem item in feed.Items)
    {
        //add rows for title and Summary
        post.RowDefinitions.Add(new RowDefinition()
        {
            Height = new GridLength(50),

        });
        post.RowDefinitions.Add(new RowDefinition()
        {
            Height = new GridLength(50)
        });

        //create the textblocks
        TextBlock TitleTextblock = new TextBlock;
        TextBlock SummaryTextblock = new TextBlock;

        //add content to textblocks
        TitleTextBlock.Text = item.Title.Text;
        SummaryTextblock.Text = item.Summary.Text;

        //set definitions
        Grid.SetColumn(TitleTextblock, 0);
        Grid.SetColumn(SummaryTextblock, 1);
        Grid.SetRow(TitleTextblock, rowdeff);
        Grid.SetRow(SummaryTextblock, rowdeff);

        //fills textblocks
        post.Children.Add(TitleTextBlock);
        post.Children.Add(SummaryTextblock);

        //add next row
        rowdeff++;
    }
    //show grid on window
    this.Content = post;

如果设置动态文本块的
,则应将其添加到其中。不确定问题出在哪里,你能详细说明一下吗?为什么你要使用网格,而不是仅仅向StackPanel添加文本块?也就是说,您应该考虑使用ItMsS控件,而不是在代码后面创建UI元素。从这里开始阅读:@FreekW。我在主要问题中添加了一个带有结果的屏幕截图。它将所有文本块放在彼此的顶部是的,就是这样!非常感谢你。