Select StackPanel 中的元素按索引 C# XAML

Select element within StackPanel by index C# XAML

我如何 select 一个元素以通过其 Stackpanel 索引进行操作?

早些时候,有人提出了 问题,但该解决方案不适用于 window 应用程序,但仅适用于通用 Windows 应用程序。

您可以访问Children属性。它 returns 一个 属性 带有一个索引器,您可以使用索引访问该索引器。以下示例在 StackPanel 中包含两个 TextBlock,并在构造函数中将第二个的文本设置为另一个值:

XAML:

<Window x:Class="TestWPF.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:TestWPF"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel x:Name="pnl">
        <TextBlock Text="Hello" />
        <TextBlock Text="World" />
    </StackPanel>
</Window>

构造函数:

public MainWindow()
{
    InitializeComponent();
    var txt = (TextBlock)pnl.Children[1];
    txt.Text = "Moon";
}

通过索引访问子项的相关部分是:pnl.Children[index];