Windows 8 metro应用程序:访问按钮属性

时间:2014-09-05 02:35:59

标签: c# window windows-8.1

我是Windows 8.1开发的新手。 我使用xaml页面上的按钮创建了下面的页面

GroupedItemsPage.xaml.cs
GroupedItemsPage.xaml


<Button Style="{StaticResource mystyle}" Click="ItemView_ItemClick" x:Name="Testing">

我在想xaml页面的页面加载,我将能够访问button属性 通过做这样的事情.. Testing.property就像我们在windows开发环境中一样。这不会发生。我希望能够以编程方式设置一些按钮。

如何获取.cs文件中按钮的属性?

Thanks. Here is the xaml page below.

        <GridView
                    x:Name="itemGridView"
                    AutomationProperties.AutomationId="ItemGridView"
                    AutomationProperties.Name="Grouped Items"
                    Grid.RowSpan="2"
                    Padding="116,137,40,46"
                    ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
                    SelectionMode="None"
                    IsSwipeEnabled="false"
        >
                    <GridView.ItemTemplate>
                        <DataTemplate>
                            <Grid HorizontalAlignment="Left" Width="Auto" Height="Auto"  >
                                     <Image Source="{Binding ImagePath}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
                                </Border>
                                <StackPanel VerticalAlignment="Bottom" Background="{ThemeResource ListViewItemOverlayBackgroundThemeBrush}">
                                    <TextBlock Text="{Binding Title}" Foreground="{ThemeResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextBlockStyle}" Height="60" Margin="15,0,15,0"/>
                                    <TextBlock Text="{Binding Subtitle}" Foreground="{ThemeResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Style="{StaticResource CaptionTextBlockStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"/>
                                </StackPanel>-->
                                <Button Style="{StaticResource contactSquarePref}" Click="ItemView_ItemClick" x:Name="Testing">
                                    <StackPanel Margin="5" >
                                        <TextBlock Tag="cntCustName" Style="{ThemeResource CntNormalTextBlockStyle}" Text="{Binding Name }"/>                             
                                        <TextBlock Tag="cntCatCode" Style="{ThemeResource CntLrgTextBlockStyle}" Text="{Binding Address}"/>                                
                                    </StackPanel>
                                </Button>
                            </Grid>
                        </DataTemplate>
                    </GridView.ItemTemplate>
                    <GridView.ItemsPanel>
                        <ItemsPanelTemplate>
                            <ItemsWrapGrid GroupPadding="0,0,70,0"/>
                        </ItemsPanelTemplate>
                    </GridView.ItemsPanel>
                    <GridView.GroupStyle>
                        <GroupStyle>
                            <GroupStyle.HeaderTemplate>
                                <DataTemplate>
                                    <Grid Margin="0,0,0,2">
                                        <Button Foreground="{ThemeResource ApplicationHeaderForegroundThemeBrush}"
                                            AutomationProperties.Name="Group Title"
                                            Click="Header_Click"
                                            Style="{StaticResource TextBlockButtonStyle}" >
                                            <StackPanel Orientation="Horizontal">
                                                <TextBlock Text="{Binding ContactType}" Margin="0,-11,10,10" Style="{StaticResource SubheaderTextBlockStyle}" TextWrapping="NoWrap" />
                                                <TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="0,-11,0,10" Style="{StaticResource SubheaderTextBlockStyle}" TextWrapping="NoWrap" />
                                            </StackPanel>
                                        </Button>
                                    </Grid>
                                </DataTemplate>
                            </GroupStyle.HeaderTemplate>
                        </GroupStyle>
                    </GridView.GroupStyle>
                </GridView>

1 个答案:

答案 0 :(得分:0)

这取决于您的XAML。如果您的按钮只是子元素(即您的逻辑树的一部分)或页面的命名资源,那么就没有问题,那里有&#39 ;构建时的代码生成过程,它创建必需的字段(在本例中为Button Testing)并在InitializeComponent()生成的方法中查找所需的元素。

但是,如果您的按钮是控件模板的一部分,则引用您的元素的唯一方法是GetTemplateChild()(如果您正在编写自己的控件,则此方法受保护)或手动观察视觉树。

所以,如果您的网页的子元素出现问题,请通过此处的所有XAML标记,因为上述问题中的行不足以找到解决方案。但是,如果你在控制模板中定义了按钮,请查看第二段。

相关问题