简体   繁体   English

Windows App 8.1 StackPanel鼠标悬停

[英]Windows App 8.1 StackPanel Mouse-Over

I have a StackPanel on a Windows 8.1 app and I want to add a Mouse-Over function. 我在Windows 8.1应用程序上有一个StackPanel ,我想添加一个Mouse-Over功能。 If I understand correctly the similar function on Windows 8.1 apps is PointerEntered/PointerExited . 如果我正确理解,Windows 8.1应用程序上的类似功能是PointerEntered/PointerExited How can I get the "Item's" text of a TextBlock for example with those functions? 如何使用这些功能获取TextBlock的“项目”文本?

EDIT: I basically want to get the TextBlock 's handle when mouse is over it so I can get or set it's properties(text etc...). 编辑:我基本上想在鼠标悬停在其上方时获取TextBlock的句柄,以便获取或设置其属性(文本等)。

This is my C# function 这是我的C#函数

private void itemGridView_PointerEntered(object sender, PointerRoutedEventArgs e)
    {

    }

and my xaml code: 和我的xaml代码:

<GridView
        x:Name="itemGridView"
        AutomationProperties.AutomationId="ItemGridView"
        AutomationProperties.Name="Items In Group"
        TabIndex="1"
        Grid.RowSpan="2"
        Padding="120,126,120,50"
        ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
        SelectionMode="None"
        IsSwipeEnabled="false"
        IsItemClickEnabled="True"
        ItemClick="ItemView_ItemClick" PointerEntered="itemGridView_PointerEntered">
        <GridView.ItemTemplate>
            <DataTemplate>
                    <Grid Height="110" Width="480" Margin="10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                        <Border Background="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="110" Height="110">
                            <Image x:Name="ImageItemName" Source="{Binding ImagePath}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
                        </Border>
                        <StackPanel x:Name="stackPanel1" Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0">
                            <TextBlock x:Name="ItemTitleText" Text="{Binding Title}" Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap"/>
                            <TextBlock Text="{Binding Subtitle}" Style="{StaticResource CaptionTextBlockStyle}" TextWrapping="NoWrap"/>
                            <TextBlock x:Name="ItemDescText" Text="{Binding Description}" Style="{StaticResource BodyTextBlockStyle}" MaxHeight="60"/>
                        </StackPanel>
                    </Grid>
                </DataTemplate>
            </GridView.ItemTemplate>
            <GridView.Header>
            <StackPanel Width="480" Margin="0,4,14,0">
                <TextBlock x:Name="TitleTextBlock" Text="{Binding Subtitle}" Margin="0,0,0,20" Style="{StaticResource SubheaderTextBlockStyle}" MaxHeight="60"/>
                <Image x:Name="imageName" Source="{Binding ImagePath}" Height="400" Margin="0,0,0,20" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
                <TextBlock x:Name="DescTextBlock" Text="{Binding Description}" Margin="0,0,0,0" Style="{StaticResource BodyTextBlockStyle}"/>
            </StackPanel>
        </GridView.Header>
        <GridView.ItemContainerStyle>
            <Style TargetType="FrameworkElement">
                <Setter Property="Margin" Value="52,0,0,2"/>
            </Style>
        </GridView.ItemContainerStyle>
    </GridView>

Use property Children to getting a UIElementCollection of child elements. 使用属性Children获得子元素的UIElementCollection

Panel.Children property. Panel.Children属性。 MSDN MSDN

    private void StackPanel_PointerEntered(object sender, PointerRoutedEventArgs e)
    {
        var values = new List<string>();
        var sp = sender as StackPanel;
        if (sp != null)
        {
            foreach (var child in sp.Children)
            {
                var tb = child as TextBlock;
                if (tb != null)
                {
                    values.Add(tb.Text);
                }
            }
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM