J'ai une StackPanel
sur une application Windows 8.1 et je veux ajouter une fonction Mouse-Over
. Si je comprends bien, la fonction similaire sur les applications Windows 8.1 est PointerEntered/PointerExited
. Comment puis-je obtenir le texte "Item" d'un TextBlock
par exemple avec ces fonctions?Application Windows 8.1 StackPanel Mouse-Over
EDIT: Je veux fondamentalement obtenir le handle de TextBlock
lorsque la souris est au-dessus pour que je puisse obtenir ou définir ses propriétés (texte etc ...).
Ceci est ma fonction C#
private void itemGridView_PointerEntered(object sender, PointerRoutedEventArgs e)
{
}
et mon 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>
C'est une très bonne réponse et répond à une grande partie de mon problème. J'ai une question simple. Que se passe-t-il avec une image? J'ai essayé de créer un nouvel enfant en tant que Image, puis obtenir les Images.Properties mais aucun n'était disponible. –
Montrez votre code. –
J'ai simplement remplacé 'var tb = enfant par TextBlock;' par 'var tb = enfant comme Image;'. J'ai essayé d'obtenir l'image du 'StackPanel'. Toutes les propriétés sont disponibles mais toutes retournent 'null' –