如何以编程方式引用xamarin.forms中ControlTemplate中的Grid?

时间:2018-04-23 10:21:01

标签: xaml xamarin.forms

我有以下ControlTemplate,其中包含一个Grid:

<ContentPage.Resources>
    <ResourceDictionary>
        <ControlTemplate x:Key="SlideViewControlTemplate">
            <Grid x:Key="GridSlideViewIndicators" Padding="0,0,0,0">
                <ContentPresenter />

            </Grid>     
        </ControlTemplate>
    </ResourceDictionary>
</ContentPage.Resources>

如何在代码中引用Grid(GridSlideViewIndicators)?我尝试了以下方法:

var gridSlideViewIdicators = Resources.Single(r => r.Key.Contains("GridSlideViewIndicators"));

但这只返回一个键/值对,而不是实际的Grid对象。

我也试过在XAML中为网格命名,但代码隐藏不可见。

1 个答案:

答案 0 :(得分:0)

您无法直接在ControlTemplate中访问您需要先创建内容的网格,这应该可以。

ControlTemplate x = (ControlTemplate) Resources["SlideViewControlTemplate"];
var gridSlideViewIdicators = x.CreateContent();