Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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# WPF如何在嵌套模板中获取控件_C#_Wpf_Wpf 4.0 - Fatal编程技术网

C# WPF如何在嵌套模板中获取控件

C# WPF如何在嵌套模板中获取控件,c#,wpf,wpf-4.0,C#,Wpf,Wpf 4.0,所以我看到了很多例子,有人有一个漂亮的数据模板,里面有一个控件,他们的内容控件正在应用这个模板,他们的代码需要获取它 但我得到的是: <DataTemplate x:Key="frontTemplate" > <StackPanel x:Name="noWork"> <Image Source="Images/1.png" Stretch="Fill" Width="72" Height="96" x:Name="FrontFace" H

所以我看到了很多例子,有人有一个漂亮的数据模板,里面有一个控件,他们的内容控件正在应用这个模板,他们的代码需要获取它

但我得到的是:

<DataTemplate x:Key="frontTemplate" >
    <StackPanel x:Name="noWork">
        <Image Source="Images/1.png" Stretch="Fill" Width="72" Height="96" x:Name="FrontFace"   HorizontalAlignment="Left" VerticalAlignment="Top"></Image>
    </StackPanel>
</DataTemplate>

<DataTemplate x:Key="flipItemTemplate">
    <Grid Width="200" Height="200">
        <Border x:Name="frontHost" Background="Transparent">
            <ContentPresenter  Content="{Binding}" ContentTemplate="{StaticResource frontTemplate}" />
        </Border>
    </Grid>
</DataTemplate>

您可以看到,我在另一个数据模板(flipItemTemplate)中嵌套了一个数据模板(frontTemplate)。我需要做的是访问frontTemplate中的Stackpanel。我试图访问该datatemplate的内容演示者的所有尝试均失败。我希望圣贤们能帮助我。看在上帝的份上,我怎样才能进入那个小组


谢谢

如果您的XAML定义如下:

<Grid Name="mainGrid">
    <Grid.Resources>
    <DataTemplate x:Key="frontTemplate" >
        <StackPanel x:Name="noWork">
            <Image Source="Images/1.png" Stretch="Fill" Width="72" Height="96" x:Name="FrontFace"   HorizontalAlignment="Left" VerticalAlignment="Top"></Image>
        </StackPanel>
    </DataTemplate>

    <DataTemplate x:Key="flipItemTemplate">
        <Grid Width="200" Height="200">

            <Border x:Name="frontHost" Background="Transparent">
                <ContentPresenter Name="contentPresenter"  Content="{Binding}" ContentTemplate="{StaticResource frontTemplate}" />
            </Border>
        </Grid>
    </DataTemplate>
    </Grid.Resources>
</Grid>

作为一个附带问题-既然我可以访问图像,我似乎无法更改其中的图像源。这是dataTemplate的副作用吗?
var template = mainGrid.FindResource("frontTemplate") as DataTemplate;
var stackPanel = template.LoadContent() as StackPanel;